Query \ Builder中的findOrFail()

时间:2017-06-10 11:19:26

标签: laravel laravel-5 query-builder

DB::table('amounts')->findOrFail($id);

返回

  

调用未定义的方法Illuminate \ Database \ Query \ Builder :: findOrFail()

我不想在这里使用模特。

实现这一目标的最佳方法是什么? (我只想在id不在表中时返回404。)

与此同时,我做了:

$amount = DB::table('amounts')->find($request->input('amount'));
if(!$amount) abort(404);

3 个答案:

答案 0 :(得分:1)

正如您在此API文档中看到的那样

https://laravel.com/api/5.4/Illuminate/Database/Eloquent/Builder.html#method_find

https://laravel.com/api/5.4/Illuminate/Database/Eloquent/Builder.html#method_findOrFail

find($id)数据库构建器方法,但findOrFail($id)并非如此,您不能直接以这种方式使用它。

我真的不明白为什么你不想使用 Eloquent Model ,但这是做好或坚持你同时做的事情的好方法。

答案 1 :(得分:0)

如果您不想使用模型,那么就可以完成这项工作。如果您使用模型,可以hash2.each do |key, value| hash1[key] = value end try

  

\照亮\数据库\锋\ ModelNotFoundException

并在此时中止catch

答案 2 :(得分:0)

如果退出到表中,您可以尝试使用以下代码获取记录:

$result = DB::table('amounts')->find($id);

if($result == NULL) //check if no record found
{
        //do your stuff here
}
else //if record found from table
{
        //do your stuff here
}

希望这有帮助。