Laravel - 用另一个覆盖刀片模板

时间:2015-01-13 00:11:42

标签: php laravel laravel-4 template-engine blade

我正在使用Laravel 4.1.30

我想知道是否可以用不同的模板覆盖模板:

像这样我会:

Show.blade.php

我会在它所在的同一目录中制作:

 _Show.blade.php

第二个文件与原始文件具有相同的内容,但可以修改,这样我就不必更改原文。

这是否可能在laravel中,或者那是不可能的?

2 个答案:

答案 0 :(得分:0)

我想你可以写一个函数。给你一个想法,这段代码不完全是php:

$template = 'show.view.php';

if(file_exists('_' . $template)){
    return '_' . $template;
}else{
    $template;
}

答案 1 :(得分:0)

对于Laravel 4.2.x

我找不到一种方法来处理文件的层次结构,但有一种文件夹的方法。一会儿找到答案。

所以我们先去:

app/start/global.php <- global classloader

并添加:

View::addLocation(public_path('app/views'));

然后转到:

app/config/view.php

并改变:

/*
|--------------------------------------------------------------------------
| View Storage Paths
|--------------------------------------------------------------------------
|
| Most templating systems load templates from disk. Here you may specify
| an array of paths that should be checked for your views. Of course
| the usual Laravel view path has already been registered for you.
|
*/

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

为:

/*
|--------------------------------------------------------------------------
| View Storage Paths
|--------------------------------------------------------------------------
|
| Most templating systems load templates from disk. Here you may specify
| an array of paths that should be checked for your views. Of course
| the usual Laravel view path has already been registered for you.
|
*/

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

您可以将'views-custom'更改为您喜欢的任何内容,但在该文件夹中所做的所有更改都将优先于'views'文件夹。所以它更像是文件夹层次结构选项。