laravel模板名字是否必须带blade

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了laravel模板名字是否必须带blade相关的知识,希望对你有一定的参考价值。

参考技术A 如果你要用该框架的模版引擎,那就必须要带上。如果你整合的第三方的模版引擎,这个就没有限制了 参考技术B 对于黑衣老人的话,周元则是笑着摇了曳,道:“这

Laravel - Blade:@include 一个带有自动“文件名注释”的模板

【中文标题】Laravel - Blade:@include 一个带有自动“文件名注释”的模板【英文标题】:Laravel - Blade: @include a template with automated "filename-comment" 【发布时间】:2014-08-18 10:00:16 【问题描述】:

我想知道是否有一种方法可以包含模板,Blade 会自动在包含模板的开头写入带有文件名的 html 注释。这在具有大量模板的项目中可能会有所帮助。

例子:

// file 1
<div class="bla">
  @include('folder.subfolder.templatename')
</div>

// file 2 ( folder/subfolder/templatename.blade.php )
<p>Lorem ipsum dolor sit amet</p>

// resulting file
<div class="bla">
  <!-- folder/subfolder/templatename.blade.php -->
  <p>Lorem ipsum dolor sit amet</p>
</div>

假设开发人员需要在 2 年后实现一项功能。使用生成的 cmets,他将能够在浏览器中查看源代码并了解每个模板在项目中的位置。

【问题讨论】:

这是什么意思,请澄清你的问题。 我只是想在浏览器中查看源代码,并在项目文件夹中找到包含的模板的信息 【参考方案1】:

这可以通过扩展 Blade 来实现,尽管它有点 hacky。我认为 laravel 应该提供一个更干净的接口来扩展刀片。

基本上我所做的就是扩展 Blade 并创建一个 @commentinclude 指令。包含的逻辑是从Laravels compileInclude() method 中提取的。我只是在它前面添加了注释和换行符。由于后面的引用包含整个控制结构的一些字符(('viewname'),我们需要首先摆脱它们。我还用/ 字符替换了所有点

Blade::extend(function($view, $compiler)

    $pattern = $compiler->createOpenMatcher('commentinclude');
    $replace = '$1<?php echo "<!-- " . str_replace(["(\'", ".", "\'"], ["", "/", ""], "$2" ) . " -->\r\n" . $__env->make$2, array_except(get_defined_vars(), array(\'__data\', \'__path\')))->render() ?>';
    return preg_replace($pattern, $replace, $view);
);

用法示例:

@commentinclude('my.view.file')

我想知道是否有人可以为此提供更清洁的解决方案。

【讨论】:

以上是关于laravel模板名字是否必须带blade的主要内容,如果未能解决你的问题,请参考以下文章

如何将带参数的 Laravel 模型函数调用到 Vuejs 模板中?

laravel模板使用

5 个非常有用的 Laravel Blade 指令,你用过哪些?

是否可以在 Laravel (4) 刀片模板中获取视图/布局名称

使用 Blade/Mustache 模板混合 Laravel 和 Vue.Js

刀片模板中的Laravel重定向问题