Laravel中的多个404错误页面 - 更改布局

时间:2016-03-10 19:01:15

标签: php laravel referrer laravel-blade

我在一个网站上有多个设计,所以我需要做的是使用正确的设计模板提供特定页面。在这种情况下,我试图给404正确的主布局。

我目前正在使用以下内容,但是刀片中的PHP不是可行的方式,因此我可能会迷路。

我抓住推荐人,查找文件夹,然后发出正确的布局:

$referer = Request::referer();

if (strpos($referer,'ext') !== false) {
   echo "@extends('layouts.ext_2.master')";
} else {
    echo "@extends('layouts.master')";
}

路线:

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

1 个答案:

答案 0 :(得分:1)

您最好在控制器中处理此问题并为每种情况返回不同的视图:

$referer = Request::referer();

if (strpos($referer,'ext') !== false) {
   return view('layouts.ext_2.master');
} else {
    return view('layouts.master');
}

如果出于某种原因,你想在模板中使用条件逻辑,你可以将变量传递给视图,我认为它更安全:

$referer = Request::referer();

$layout = (strpos($referer,'ext') ? 'layouts.ext_2.master' : 'layouts.master';

    return view('main.view', compact('layout'));
}

在视图中:

@include($layout)