忽略不在routes-laravel4中的URL的错误

时间:2014-07-03 06:55:09

标签: php laravel laravel-4 laravel-routing

我有以下路线

Route::get('categories', 'MixsController@listJokesCategories');
Route::get('tag', 'MixsController@listJokestags');
Route::get('jokes', 'MixsController@listJokes');

所以我的有效网址是

site_url/categories
site_url/jokes
site_url/tags

如果用户点击浏览器中的其他网址说site_url / stories则会抛出错误

Symfony \ Component \ HttpKernel \ Exception \ NotFoundHttpException
open: /var/www/dagonlife_web/vendor/laravel/framework/src/Illuminate/Routing/RouteCollection.php

这看起来非常不专业,不是有一些方法来捕捉此错误并重定向到某些自定义页面,如 page_not_found

1 个答案:

答案 0 :(得分:1)

是的,您可以使用App::missing()。来自the documentation的示例:

App::missing(function($exception)
{
    return Response::view('errors.missing', array(), 404);
});

您还可以侦听该特定异常并将其绑定到函数,例如:

App::error(function(Symfony\Component\HttpKernel\Exception\NotFoundHttpException $exception, $code)
{
    return Response::view('errors.missing', array(), 404);
});