[英]Trying to use findOrFail() instead of get()
我想使用findOrFail
而不是get()
,但它不能那样工作。
那么,如果该行不存在,返回 404 响应的最佳方法是什么?
$log = DB::table('dmlog')
->select(
'dmlog.*',
'membership.membership',
'department.department',
'category.category',
'communication.communication',
'room.room AS room',
'room.category AS room_cat',
'roommove.room AS roommove',
'roommove.category AS roommove_cat'
)
->join('membership', 'membership.id', '=', 'id_membership')
->join('department', 'department.id', '=', 'id_department')
->join('category', 'category.id', '=', 'id_category')
->join('communication', 'communication.id', '=', 'id_communication')
->join('room', 'room.id', '=', 'id_room')
->join('room AS roommove', 'roommove.id', '=', 'id_roommove')
->where('dmlog.id', $id)->get(); // <----- HERE
return response()->json($log);
您可以添加一行abort_if($log->isEmpty(), 404);
如果$log
为空,则在返回行之前中止
findOrFail 是一种雄辩的方法,而不是 DB 原始类方法。 你需要使用 eloquent。
需要直接引用模型才能使用findOrFail
$model = App\YourModel::findOrFail($id);
https://laravel.com/docs/master/eloquent#retrieving-single-models
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.