【问题标题】:Laravel blade tem removes new lineLaravel 刀片 tem 删除了新行
【发布时间】:2015-12-01 09:30:27
【问题描述】:

这不是一个真正的大问题,但它非常烦人。

当开始使用刀片在 laravel 中创建模板时,一切看起来都很好。 “主”模板/布局使其“样式”正确。 “样式”是指查看源代码时正确数量的空格、换行符等。

当您知道尝试扩展此主模板时会出现问题。 对于您知道的每个@section('<something>'),所有的换行符都会从代码中删除,从而使源代码看起来很丑。

一直在寻找这种现象一段时间,但没有找到任何有趣的东西来解释原因,或者可能是使源代码再次可读的解决方案。

如果解释不够好,这里是一个例子:

// master.blade.php
<html>
<head>
    <title>Something here</title>
</head>
<body>
    @yield('content')
</body>
</html

好的,这将在源代码中看起来完全一样。让我们制作一个扩展它的另一个模板。

// home.blade.php
@extends('master')

@section('content')
    <h1>Welcome</h1>
    <p>This is my homepage</p>
@endsection

这将首先继承父级,并将@yield('content') 替换为:

<h1>Welcome</h1>        <p>This is my homepage</p>

是否有任何解释为什么会发生这种情况? 对于更长的子模板,阅读源代码是一个活生生的地狱。查看“源代码”的最佳方式是在检查元素中查看生成的代码,这也只是实时代码,而不是第一个生成的代码。

- 有点恼火的开发者

【问题讨论】:

    标签: php laravel blade laravel-5.1


    【解决方案1】:

    我相信这取决于 Laravel 处理视图的方式。您在resources/views 中创建的每个刀片视图都将被“翻译”为 PHP。例如,您的代码中的这一行:

    @yield('content')
    

    将被翻译成

    <?php echo $__env->yieldContent('content'); ?>
    

    您可以通过检查storage/framework/views/ 上的所有文件轻松检查自己。这是 Laravel 构建“真实”HTML 网站时将包含的文件。请注意,.blade.php 视图中的所有制表位都替换为 4 个空格。还有这种丑陋的意图。

    【讨论】:

    • 嗯。我认为他们删除换行符很愚蠢。你不知道可以为 Laravel 5.1 扩展刀片的来源吗?乱七八糟的源代码就是一团糟!
    猜你喜欢
    • 2014-07-28
    • 2018-07-31
    • 2021-09-25
    • 1970-01-01
    • 2017-08-26
    • 2021-05-16
    • 1970-01-01
    • 2019-01-31
    • 2016-07-14
    相关资源
    最近更新 更多