Laravel 中的多个 404 错误页面 - 更改布局
Multiple 404 error pages in Laravel - changing layout
我在一个站点中有多个设计,所以我需要做的是使用正确的设计模板来提供特定页面。在这种情况下,我试图为 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);
});
您最好在控制器中处理此问题,return 每种情况都有不同的视图:
$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)
我在一个站点中有多个设计,所以我需要做的是使用正确的设计模板来提供特定页面。在这种情况下,我试图为 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);
});
您最好在控制器中处理此问题,return 每种情况都有不同的视图:
$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)