जांचें कि मॉडल सहेजा गया है या नहीं
save()
एक बूलियन लौटाएगा, सहेजा जाएगा या नहीं बचाया। तो आप या तो कर सकते हैं:
$saved = $myModel->save();
if(!$saved){
App::abort(500, 'Error');
}
या सीधे अगर में सेव करें:
if(!$myModel->save()){
App::abort(500, 'Error');
}
ध्यान दें कि save()
. को कॉल करने का कोई मतलब नहीं है आपके उदाहरण की तरह लगातार दो बार। और वैसे, कई त्रुटियां या समस्याएं जो मॉडल को सहेजे जाने से रोकती हैं, वैसे भी एक अपवाद फेंक देंगी...
जांचें कि क्या क्वेरी ने कोई परिणाम दिया है
first()
null
लौटाएगा जब कोई रिकॉर्ड नहीं मिलता है तो आपका चेक काम करता है। हालांकि विकल्प के तौर पर आप firstOrFail()
. का भी इस्तेमाल कर सकते हैं जो स्वचालित रूप से एक ModelNotFoundException
फेंक देगा जब कुछ न मिले:
$UserProduct = Product::where('seller_id', '=', $userId)->firstOrFail();
(find()
. के लिए भी यही सच है और findOrFail()
)
जांचें कि क्वेरी निष्पादित हुई या नहीं
दुर्भाग्य से create
. के साथ यह इतना आसान नहीं है। यहाँ स्रोत है:
public static function create(array $attributes)
{
$model = new static($attributes);
$model->save();
return $model;
}
जैसा कि आप देख सकते हैं कि यह $attributes
. के साथ मॉडल का एक नया उदाहरण बनाएगा और फिर save()
. पर कॉल करें . अब अगर save()
सच कहां लौटना है, आपको नहीं पता होगा क्योंकि आपको वैसे भी एक मॉडल उदाहरण मिलेगा। उदाहरण के लिए आप मॉडल आईडी की जांच कर सकते हैं (क्योंकि यह केवल रिकॉर्ड सहेजे जाने और नई बनाई गई आईडी वापस आने के बाद ही उपलब्ध है)
if(!$newUser->id){
App::abort(500, 'Some Error');
}