Laravel:修剪包括模板

时间:2018-09-21 09:40:45

标签: php laravel templates laravel-blade

我有一个名为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

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

1 个答案:

答案 0 :(得分:1)

这是laravel 5.6+的解决方案。

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

    //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>