【问题标题】:Laravel: trim included templateLaravel:修剪包含的模板
【发布时间】:2019-02-25 16:40:50
【问题描述】:

我有一个名为include/data.blade.php 的模板文件,文件末尾以换行符结尾。 (这是我不想更改的 IDE 默认配置)

提到的模板通过以下方式包含在另一个模板中:

# parent blade template
<script>
    let tpl = '@include("include.data")';
</script>

由于data.blade.php 以空行结尾,模板渲染后我在浏览器中收到一个javascript错误:

Uncaught SyntaxError: Invalid or unexpected token

问题是:我可以以任何方式修剪包含的模板吗?

【问题讨论】:

    标签: php laravel templates laravel-blade


    【解决方案1】:

    这是 laravel 5.6+ 的解决方案。

    1. AppServiceProvider::boot()中注册一个新的trim刀片指令:

      //Register starting tag
      Blade::directive('trim', function() {
          return '<?php ob_start() ?>';
      });
      
      //Register ending tag
      Blade::directive('endtrim', function() {
          return "<?php echo trim(ob_get_clean()); ?>";
      });
      
    2. 使用注册指令如下:

      # parent blade template
      <script>
          let tpl = '@trim @include("include.data") @endtrim';
      </script>
      

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-02-04
      • 1970-01-01
      • 2023-04-07
      • 2012-08-15
      • 2014-11-13
      • 2019-01-16
      • 2014-08-21
      相关资源
      最近更新 更多