У меня есть несколько дизайнов на одном сайте, поэтому мне нужно обслуживать определенные страницы с правильным шаблоном дизайна. В этом случае я пытаюсь дать 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);
});
Для вас лучше обработать это в вашем контроллере и возвращать различные представления для каждого условия:
$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)
Других решений пока нет …