【发布时间】:2014-09-23 12:14:53
【问题描述】:
我正在尝试使用 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 代码。
谢谢,
迈克尔
【问题讨论】:
-
您确定您仍然收到
200吗?因为我刚刚在我的虚拟机上尝试过,它给了我一个404,即使它确实显示了错误堆栈。您如何检查错误代码? -
我可以重现 OP 的行为,遇到这个使用 HTTP 200 代码发送的字符串:
Error in exception handler: in /home/vagrant/CiFR/vendor/laravel/framework/src/Illuminate/Foundation/Application.php:910 -
好吧,我也设法重现了它。发生这种情况是因为您在错误处理程序内部抛出了一个错误。我认为这里最好的解决方案是寻找@MichaelBearjaws 的答案。
标签: php rest laravel laravel-4