Verifica se il modello è stato salvato
save()
restituirà un valore booleano, salvato o non salvato. Quindi puoi fare:
$saved = $myModel->save();
if(!$saved){
App::abort(500, 'Error');
}
Oppure salva direttamente in if:
if(!$myModel->save()){
App::abort(500, 'Error');
}
Nota che non ha senso chiamare save()
due volte di seguito come nel tuo esempio. E comunque, molti errori o problemi che impedirebbero il salvataggio del modello genereranno comunque un'eccezione...
Verifica se la query ha restituito un risultato
first()
restituirà null
quando non viene trovato alcun record, quindi il tuo controllo funziona trova. Tuttavia, in alternativa potresti anche usare firstOrFail()
che genererà automaticamente una ModelNotFoundException
quando non viene trovato nulla:
$UserProduct = Product::where('seller_id', '=', $userId)->firstOrFail();
(Lo stesso vale per find()
e findOrFail()
)
Verifica se la query è stata eseguita
Sfortunatamente con create
non è così facile. Ecco la fonte:
public static function create(array $attributes)
{
$model = new static($attributes);
$model->save();
return $model;
}
Come puoi vedere creerà una nuova istanza del modello con $attributes
e quindi chiama save()
. Ora se save()
dove restituire true non lo sapresti perché otterresti comunque un'istanza del modello. Quello che potresti fare, ad esempio, è controllare l'id del modello (poiché è disponibile solo dopo che il record è stato salvato e l'id appena creato è stato restituito)
if(!$newUser->id){
App::abort(500, 'Some Error');
}