我正在尝试使用Laravel编写RESTful API.
我的路线是这样的:
Route::resource('user', 'UserController');
方法是这样的:
public function show($id) { return User::findOrFail($id); }
但是如果模型实例不存在,我会得到500错误,而我相信我需要404错误.
所以在start/global.php中我有这个:
App::error(function(Illuminate\Database\Eloquent\ModelNotFoundException $exception) { App::abort(404); });
这给了我200个代码和异常处理程序中的错误消息.
难道我做错了什么?我希望没有输出和404代码.
谢谢,
迈克尔
为了完整起见,OP提到(并且可以复制)的行为之前在Laravel的Github上进行了讨论:https://psithub.com/laravel/framework/issues/1807 .决定它是按设计的,不会改变的.
因此,正如Michael Bearjaws已经提到的那样,从错误处理程序中返回Response::make("Not Found", 404);
或者Response::json(null, 404);
用于JSON是目前唯一的解决方案.