DB::table('amounts')->findOrFail($id);
返回
调用未定义的方法Illuminate \ Database \ Query \ Builder :: findOrFail()
我不想在这里使用模特。
实现这一目标的最佳方法是什么? (我只想在id不在表中时返回404
。)
与此同时,我做了:
$amount = DB::table('amounts')->find($request->input('amount'));
if(!$amount) abort(404);
答案 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
}
希望这有帮助。