404

如何在路由匹配失败的情况下跳转到404页面

已邀请:
新建一个404模板就可以了
resources/views/errors/404.blade.php

JasonLaravel

赞同来自: 错落流年

5.1 在 app/Exceptions/Handler.php 中
public function render($request, Exception $e)
{
    if($e instanceof ModelNotFoundException){
        if($request->ajax()){
            return response()->json(['ret'=>'ERROR','message'=>'Model Not Found'],404);
        }
        return response()->view('errors.404',[],404);
    }
    if($e instanceof TokenMismatchException){
        if($request->ajax()){
            return response()->json(['ret'=>'ERROR','message'=>'Token Mismatch'],400);
        }
        \Flash::error('表单重复提交,请刷新页面再试!');
        return \Redirect::back()->withInput()->withErrors('表单重复提交,请刷新页面再试!');
    }
    return parent::render($request, $e);
}

错落流年

赞同来自:

我创建了,但是没有跳转到我的页面啊,还是laravel的默认的提示
Sorry, the page you are looking for could not be found.

JasonLaravel

赞同来自:

.... 我只是指出了在哪里可以捕获到这个异常 然后做相应处理的地方 ,你需要自己写的 上面的代码只是个例子 。。。。

双子星 - Laravel群:9783891

赞同来自:

要做二点:
第一,在resources/views/errors/下建404.blade.php模版;第二,在路由匹配失败时abort(404).
//伪静态
Route::get('/{html}.html', function ($html) {
if (view()->exists($html)) {
    return view($html);
}
abort(404);
});

要回复问题请先登录注册