Periksa apakah model telah disimpan
save()
akan mengembalikan boolean, disimpan atau tidak diselamatkan. Jadi, Anda dapat melakukan:
$saved = $myModel->save();
if(!$saved){
App::abort(500, 'Error');
}
Atau langsung simpan di if:
if(!$myModel->save()){
App::abort(500, 'Error');
}
Perhatikan bahwa tidak masuk akal untuk memanggil save()
dua kali berturut-turut seperti pada contoh Anda. Dan omong-omong, banyak kesalahan atau masalah yang membuat model tidak dapat disimpan akan menimbulkan pengecualian...
Periksa apakah kueri mengembalikan hasil
first()
akan mengembalikan null
ketika tidak ada catatan yang ditemukan maka cek Anda berfungsi temukan. Namun sebagai alternatif, Anda juga dapat menggunakan firstOrFail()
yang secara otomatis akan mengeluarkan ModelNotFoundException
ketika tidak ada yang ditemukan:
$UserProduct = Product::where('seller_id', '=', $userId)->firstOrFail();
(Hal yang sama berlaku untuk find()
dan findOrFail()
)
Periksa apakah kueri telah dieksekusi
Sayangnya dengan create
ini tidak semudah itu. Ini sumbernya:
public static function create(array $attributes)
{
$model = new static($attributes);
$model->save();
return $model;
}
Seperti yang Anda lihat, itu akan membuat instance baru dari model dengan $attributes
lalu panggil save()
. Sekarang jika save()
di mana mengembalikan true Anda tidak akan tahu karena Anda akan mendapatkan contoh model. Apa yang dapat Anda lakukan misalnya adalah memeriksa id model (karena itu hanya tersedia setelah catatan disimpan dan id yang baru dibuat dikembalikan)
if(!$newUser->id){
App::abort(500, 'Some Error');
}