2013-09-22 65 views
9

我正在嘗試使用Laravel和twitter bootstrap設置一個基本頁面。我安裝了Laravel並獲得了通用的「你在這裏」或w/e圖像,看起來很有光澤。對於twitter bootstrap,我在/ public文件夾中添加了/ boot/resources/js,/ resources/css和/ resources/img下的twitter引導文件。php laravel blade template not rendering

因此,現在我試圖爲我的視圖製作一個模板,其中基本上twitter引導程序.css文件輸出在我的head標記中,並且bootstrap.min.js和jquery.js腳本包含在我的輸出之前輸出關閉車身標籤。

所以這是我的設置:

laravel /應用/ routes.php文件

Route::get('/', function() 
{ 
     return View::make('hello'); 
}); 

laravel /應用/視圖/ hello.php

@extends('layouts.master') 

@section('content') 
    <p>This is my body content.</p> 
@stop 

laravel/app/views/layouts/master.blade.php

<html> 
    <head> 
    @section('head') 
     <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
     <link href="/resources/css/bootstrap.min.css" rel="stylesheet" media="screen"> 
    @show 
    </head> 
    <body> 
    <div class="container"> 
     @yield('content') 
    </div> 

    @section('footer_scripts') 
    <script src="http://code.jquery.com/jquery.js"></script> 
    <script src="/resources/js/bootstrap.min.js"></script> 
    @show 
    </body> 
</html> 

但是它的刀片模板似乎沒有渲染。這是我得到的輸出:

@extends('layouts.master') @section('content') 
This is my body content. 

@stop 

這就是它在頁面以及視圖源中的樣子。沒有html標籤或腳本包含;沒有。我必須錯過一些基本的東西,並且我試着翻閱Laravel文檔,但我似乎無法弄清楚我做錯了什麼。有人能指引我朝着正確的方向嗎?

回答

21

要使用刀模板,您必須在文件名中.blade,例如在你的情況應該是

hello.blade.php 

否則,將無法呈現。閱讀更多關於Laravel Site。 這裏是我的測試項目(index.blade.php)的一個例子,因爲你有一個錯字@extends('layout.master')它應該是這樣的

@extends('layouts.master') 

@section('content') 
This is a sample of laravel 4 using blade template engine. 
This is home page using HomeController and home.blade template. 
@stop 
+1

AHA。其實我嘗試過,但它仍然在做。我認爲這個問題也是,當時我還拼寫了'@extends('layouts.master')'放置'layout'而不是'layouts' – slinkhi

+0

@mysql_noobie_xxxx,是的它應該是'layouts'。 –

3

laravel/app/views/hello.php

該文件應該已經hello.blade.php因爲你想使用它的刀片模板引擎..多數民衆贊成它。

上模板

的更多信息可以在docs

,你聲明的腳本也發現,在部分:

<script src="/resources/js/bootstrap.min.js"></script> 

它可以使用這個來完成:看this

{{ HTML::script('resources/js/bootstrap.min.js') }} 

只是你知道的。 ;)

+0

嘿謝謝關於腳本的提示包括;這對我來說都是新的,所以我有很多東西要學習!謝赫回答當前問題的抽籤要稍微快一點,所以我給了他解決方案,但是+1也給你:) – slinkhi

+0

是的。別擔心。下次吧。 XP。謝謝。 – reikyoushin

2

剛剛得到了與最初描述相同的問題。但是:所有模板文件名都與* .blade.php所需的規格匹配。此外,「佈局」路徑名設置正確。結果仍然沒有刀片渲染,輸出僅限於@extends('layouts.master')

解決方法是:我在第一行使用了<!-- app/views/index.blade.php -->評論的複製粘貼視圖腳本。從模板中刪除此評論,並將@extends('layouts.master')放在我的視圖腳本的第一行,而不是訣竅。

映入眼簾, McPan

1

地方@extends()中的第一行。

+2

當您爲您的意圖添加說明時,對於OP和其他訪問者來說,這將會更有幫助。謝謝。 – reporter

2

你有同樣的問題,我仔細檢查了我的代碼,結果我省略了我的變量$和頁面是空白無法呈現,但這是與流明,希望你可以仔細檢查你的代碼太

1

我也面臨同樣的問題,然後我發現,在@extends('layouts.master')或任何註釋之前留下一個空格或一行不會呈現。 @extends('layouts.master')應該放在最上面。

-1

我面臨同樣的問題,解決方案是@extends('layouts.master')必須在第一行。

0

對我來說,這是由於括號之間的空格:而不是{{$ name}} 我用{{$ name}},它對我很有用。