Laravel: как реагировать с пользовательской ошибкой 404 в зависимости от маршрута
Я использую фреймворк Laravel4 и столкнулся с этой проблемой.
Я хочу отобразить пользовательскую ошибку 404 в зависимости от запрошенного url.
Например:
Route::get('site/{something}', function($something){
return View::make('site/error/404');
});
И
Route::get('admin/{something}', function($something){
return View::make('admin/error/404');
});
Значение '$something'
не имеет значения.
Приведенный пример работает только с одним сегментом, т. е. 'site/foo'
или 'admin/foo'
.
Если кто-то запросит 'site/foo/bar'
или 'admin/foo/bar'
laravel выдаст ошибку default 404.
App::missing(function($exception){
return '404: Page Not Found';
});
Я пытался найти что-то в документации Laravel4, но ничего не нашел. как раз для меня. Пожалуйста, помогите :)
Спасибо!
1 ответ:
В
app/start/global.php
App::missing(function($exception) { if (Request::is('admin/*')) { return Response::view('admin.missing',array(),404); } else if (Request::is('site/*')) { return Response::view('site.missing',array(),404); } else { return Response::view('default.missing',array(),404); } });
На ваш взгляд, вы можете найти
$something
с{{ Request::path(); }}
или{{ Request::segment(); }}