Laravel:如何找到合适的刀片主模板?

时间:2013-09-09 16:41:24

标签: laravel laravel-4 blade

要扩展刀片模板,您必须编写

@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')

没有任何作用。

2 个答案:

答案 0 :(得分:3)

使用软件包或自动加载模块时,使用双冒号表示法来引用它的资源。在您的情况下,要访问模块的主模板,您需要使用

@extends('backend::layouts.master') 

这些约定在文档中有所描述,有关详细信息,请参阅

Laravel 4 package conventions

答案 1 :(得分:0)

确保/app/config/view.php具有这些视图所在位置的路径条目。

'paths' => array(__DIR__.'/../views'),

'paths' => array(
    __DIR__.'/../views',
    __DIR__.'/../modules/backend/views'
),

或任何代表您实际路径的内容。

如果您的视图位于动态生成的文件夹中,您可能希望从此处查看通过其他机制加载视图文件夹。也许是一个module :: boot事件,它将模块路径添加到视图路径数组中?只是一个想法。