检查雄辩查询是否返回无答案的最佳方法是什么?

2022-08-30 17:32:40

我使用的是Laravel 4。假设我有一个雄辩的模型(患者),我想得到一个叫鲍勃的病人,我会这样做:

$patient = Patient::where('name', '=', 'Bob');

检查$patient是否是有效记录的最佳方法是什么?


答案 1

如果数据库查询未找到任何匹配的结果,则返回 。因此。。。null

$patient = Patient::where('name','=','Bob')->first();

if ( is_null($patient) ) {
  App::abort(404);
}

(注意:在原始问题中,您忘记了(或)查询。不要忘记这一点,否则你会得到一个雄辩的对象,而不是一个结果。->first()->get()


答案 2

使用这个:

$patient = Patient::where('name', '=', 'Bob')->firstOrFail();

它将在成功时返回Eulqouent模型,或在失败时抛出ModelNotFoundException。


推荐