Несколько страниц с ошибками 404 в Laravel — изменение макета

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

2

Решение

Для вас лучше обработать это в вашем контроллере и возвращать различные представления для каждого условия:

$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)
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]