Laravel blade tem移除新行

时间:2015-09-05 09:08:55

标签: php laravel blade laravel-5.1

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

使用刀片开始在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>

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

- Sligthly恼火的开发者

1 个答案:

答案 0 :(得分:1)

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

@yield('content')

将被翻译为

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

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