@procode
Разработчик

Как в Laravel 5.7 удобным образом разместить все файлы шаблонов в отдельной подпапке views?

Здравствуйте.

Суть вот в чем:
я хочу сделать дизайн проекта в виде отдельной "темы" (вроде как в WordPress), чтобы не переписывать уже созданные с помощью, например, make:auth и пр. шаблоны, а просто в отдельной папке сделать новые.

Но прописывать для каждой вьюхи новый путь (в контроллере или роутере) - это боль. Хочется как-то сделать более централизованно, и чтобы менять легко было и чтобы такое изменение не вызвало потом новые проблемы, в общем, по уму. И я не знаю как это сделать.

Мне в смежном топике посоветовали:
делайте свою имплементацию ВьюКомпоузера поверх существующей, что бы она автоматически включала в путь нужную вам тему

и
ничего гуглить не надо, ибо маловероятно, что найдете. Но можете попытатся: "laravel ViewComposer override" или подобное. Обычный ООП + ioc laravel.
но я в Laravel - новичок, и для меня это звучит вроде как "авада кедавра".

Ткните пожалуйста пальцем, что и где надо прописать, чтобы Laravel брал вьюхи для

Auth::routes(['verify' => true]);
не в
resources/views/auth
а, скажем, в
resources/views/mytheme/auth
или вроде того.

Большое спасибо.
  • Вопрос задан
  • 292 просмотра
Решения вопроса 1
@gomer1726
Самый примитивный метод это просто подставлять префикс
Контроллер
private $viewPath = 'site';

//просто подставляешь
return view($this->viewPath . 'index');

И так у каждого контроллера свой путь, но конечно поищи еще это не самый оптимальный вариант
UPDATED
Идешь в config/view.php
'paths' => [
        resource_path('views') . 'сюда свой путь',
    ],

и обязательно после этого
php artisan config:cache
php artisan cache:clear
и все
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Wentixon
Во-первых, надо сказать, что на ларавель проектах это требуется довольно редко, это все же не cms, если же будет редизайн серьезный, то в любом случае скорее к старому вы уже не вернётесь. Если юзает git, то всегда можно откатиться к старому дизайну. Но опять же, меняется дизайн и скорее всего часть функционала тоже поменяется и этот функционал не будет совместим со старой темой.

Во-вторых.. если все же нужно это сделать (единственный вариант когда это действительно нужно вижу примерно такой: днём одна тема, ночью другая. Как то так), просто в конфиге делаете соответствующий ключ, в базовом контроллере, от которого наследуются все остальные делаете метод view, где уже определяете полный путь до вьюхи с темой. Или же делаете трейт, в котором опять же такой метод создаёте. Вот собственно и все
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы