Работа с шаблонами в модулях

Blade шаблоны, можно размещать по стандартному пути resources/views. Путь к шаблонам необходимо прописать в сервис провайдере:


    public function register()
    {
        …
        $this->loadViewsFrom(__DIR__.'/../resources/views', 'mxj-blog');
        …
    }

Тут mxj-blog – префикс с помощью которого шаблон можно вызвать:


return view('mxj-blog::index');

Стандартно поддерживаются вложенные папки, например mxj-blog::folder.index. В остальном шаблоны не отличаются от работы с ними в стандартном приложении Laravel.

Чтобы поддерживать общий стиль и не плодить сущности имеет смысл вынести ссылку на общий шаблон всего приложения в конфиг модуля: 


// в конфиге
return [
    'layout' => 'layouts.default',
]
// во view
@extends(config('mxj-blog.layout'))

В этом случае общий шаблон находится в самом приложении, а через настройки подцепляется уже к конечным страницам модуля. Получается удобно.

19.07.2021