1

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

@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 而不是 app\modules\backend\views\layouts\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')

没有任何效果。

4

2 回答 2

5

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

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

这些约定在文档中进行了描述,有关更多信息,请参阅

Laravel 4 包约定

于 2013-09-09T19:37:40.067 回答
0

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

IE

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

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

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

如果您的视图位于动态生成的文件夹中,您可能希望从这里考虑通过另一种机制加载视图文件夹。也许是一个将模块路径添加到视图路径数组的 module::boot 事件?只是一个想法。

于 2013-09-09T20:19:28.680 回答