在Route :: model中找不到laravel 4句柄

时间:2014-05-11 03:05:23

标签: php laravel laravel-4

在routes.php

中使用“Route :: model”时
Route::model('pizza', 'Pizza');

Route::get('edit/{pizza}', 'PizzaController@edit');

如果在DB中找不到“id”,我收到错误,如何在此状态下显示自定义消息?

感谢,

1 个答案:

答案 0 :(得分:1)

默认情况下,如果模型绑定失败,Laravel将抛出404错误。所以你要做的是提供一个闭包作为第三个参数来覆盖行为并抛出不同的错误:

Route::model('pizza', 'Pizza', function()
{
    throw new ModelNotFoundException; // or NotFoundHttpException or PizzaNotFoundException...
});

请参阅:http://laravel.com/docs/routing#route-model-binding

一旦你有了这个,你可以捕捉异常并按照app/start/global.php

的要求处理它

请参阅:http://laravel.com/docs/errors#handling-errors

或者不是抛出异常,而是使用闭包来向特定页面返回Redirect响应,并带有指示错误的flash消息。