要扩展刀片模板,您必须编写
@extends('folder.template_name')
这适用于标准安装。
我为后端创建了一个模块,现在我无法使用我的模块模板,因为Laravel捕获了第一条记录,那是标准的视图文件夹。
我的结构如下:
app
-- modules
-- modules\backend
-- modules\backend\views
-- modules\backend\views\layouts\master.blade.php
-- views
-- views\layouts\master.blade.php
所以,当我在后端并尝试显示我的模板时:
// app\modules\backend\views\page\index.blade.php
@extends('layouts.master')
Laravel渲染app \ views \ layouts \ master.blade.php而不是 应用\模块\后端\视图\布局\ master.blade.php
我在@extends中尝试过很多名字,例如
@extends('app\modules\backend\views\layouts\master')
@extends('app.modules.backend.views.layouts.master')
@extends(base_path(). '\app\modules\backend\views\\' . 'layouts.master')
没有任何作用。
答案 0 :(得分:3)
使用软件包或自动加载模块时,使用双冒号表示法来引用它的资源。在您的情况下,要访问模块的主模板,您需要使用
@extends('backend::layouts.master')
这些约定在文档中有所描述,有关详细信息,请参阅
答案 1 :(得分:0)
确保/app/config/view.php具有这些视图所在位置的路径条目。
即
'paths' => array(__DIR__.'/../views'),
要
'paths' => array(
__DIR__.'/../views',
__DIR__.'/../modules/backend/views'
),
或任何代表您实际路径的内容。
如果您的视图位于动态生成的文件夹中,您可能希望从此处查看通过其他机制加载视图文件夹。也许是一个module :: boot事件,它将模块路径添加到视图路径数组中?只是一个想法。