2015-09-05 117 views
0

这不是一个真正的大问题,但它是非常恼人的。Laravel刀片模板删除新行

当使用刀片在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(“内容”)与:

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

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

- Sligthly恼火开发商

回答

1

我相信这是最高的处理意见Laravels方式。您在resources/views中创建的每个刀片视图都将“翻译”为PHP。这条线在你的代码,例如:

@yield('content') 

将被转换为

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

可以easely通过检查所有文件storage/framework/views/检查自己。这是Laravel将包含的用于构建“真实”HTML网站的文件。请注意,在.blade.php视图中制作的所有制表符被替换为4个空格。有这种丑陋的想法。

+0

嗯。我认为他们删除换行符是愚蠢的。你根本没有机会知道你可以为Laravel 5.1扩展刀片的来源吗?凌乱的源代码是一团糟! – Morten