作者:银仔-zxy | 来源:互联网 | 2018-05-21 05:40
laravel HTTP路由可带正则表达式验证,不符合规则的会报错,这样不友好,该如何设置报错信息?
Route::get('user/{name}', function($name)
{
//
})
->where('name', '[A-Za-z]+');
Route::get('user/{id}', function($id)
{
//
})
->where('id', '[0-9]+');
回复内容:
laravel HTTP路由可带正则表达式验证,不符合规则的会报错,这样不友好,该如何设置报错信息?
Route::get('user/{name}', function($name)
{
//
})
->where('name', '[A-Za-z]+');
Route::get('user/{id}', function($id)
{
//
})
->where('id', '[0-9]+');
php
/**
* Render the given HttpException.
*
* @param \Symfony\Component\HttpKernel\Exception\HttpException $e
* @return \Symfony\Component\HttpFoundation\Response
*/
protected function renderHttpException(HttpException $e)
{
if (view()->exists('errors.'.$e->getStatusCode()))
{
return response()->view('errors.'.$e->getStatusCode(), [], $e->getStatusCode());
}
else
{
return (new SymfonyDisplayer(config('app.debug')))->createResponse($e);
}
}
比如你想自定义 404 错误页面的话,只要创建一个 resources/views/errors/404.blade.php 的视图文件
404内容自定义了
线上debug是必须关闭的,而且可以自定义404页面
NotFoundHttpException 异常,在 app/Exceptions/Handler 里捕获一下
直接放个404页面到errors文件夹即可。