繁体   English   中英

尝试使用 findOrFail() 而不是 get()

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM