2015-09-05 161 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