2015-11-14 84 views
1

所以當我最初把手放在Laravel上時,我正在關注Yii1。在Yii中,我們使用普通的PHP模板;我不介意,因爲我其實喜歡他們。Laravel 5.1:意見,澄清

但是,當我瞭解到Blade以及Laravel如何來回記錄刀片,甚至幾乎沒有提到使用裸露的PHP模板時,我就......很厭煩。

我把一個項目放在一起,只爲我提供一個PHP視圖引擎。但就在幾分鐘前,我真的看到了它:PhpEngine.php。 Diggin更深層次,我facepalmed;我不能只是放棄我的項目,但我也可以深入挖掘。

這是SOOO混亂,所以我期待OT有問題蠅頭點點回答:

  • 當我使用View::addNamespace(),我可以做view("foo::my.template")過,對吧?
  • 我該如何真正使用佈局/模板?如在,我寫了文件,我想要渲染rmy的意見。我該怎麼做 PHP的意見?在刀片服務器上,我們獲得@extend或其他東西,但我似乎無法找到原始PHP模板。
  • 我在哪裏可以看到一些正確的視圖文檔和示例,而不是laravel.com,這會推動Blade這麼多?

回答

0

當我使用view::addNamespace(),我可以做view("foo::my.template")過,對吧?

是。它的確如此。通常這種格式是應用第三方包。例如,如果您使用包心目中,你調用視圖的命名空間爲:

$this->loadViewsFrom(__DIR__.'/path/to/views', 'foo'); 

現在你可以調用視圖view('foo::whatever')

如何實際使用佈局/模板?如在,我寫了文件,我想要渲染rmy的意見。我如何用純粹的PHP視圖來做到這一點?在刀片服務器上,我們獲得了@extend或其他東西,但似乎無法找到原始PHP模板。

我不明白I can not seem to find that for raw PHP templates是什麼意思。但讓我告訴你一個例子使用刀片系統:

  1. 創建一個佈局文件:

    // master.blade.php 
    <!DOCTYPE html> 
    <html lang="en"> 
    <head> 
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
        <meta charset="utf-8"> 
        <title>@yield('title')</title> 
    <head> 
    <body> 
        @yield('body') 
    </body> 
    </html> 
    

    正如你可以看到上面有兩個「段」,其內容可根據被改變擴展此佈局的每個視圖:標題主體

  2. 擴展布局每個視圖

    //contact.blade.php 
    @extends('master') 
    @section('title') 
        Contact us 
    @stop 
    @section('body') 
        <h1>Thank you for contact us</h1> 
    @stop 
    

    注意如何titlebody使用@section標籤設置。在每個內部定義要顯示的內容。最後,根據您的需要,在您的控制器中只需撥打view('foo::contact')view('contact')即可。

我在哪裏可以看到的,而不是那些laravel.com一些適當的視圖文檔和例子,這推動葉片那麼多嗎?

那麼,刀片系統並不是太深。我認爲laravel的文檔足以補充你對這方面的知識。

+0

謝謝您的回覆!我的第二個問題是,在Yii1中,我有一個「主佈局」和我的視圖文件。因此,當我調用'$ this-> render(「myview」);'時,視圖將被渲染,然後佈局將被加載並且視圖被放置到那裏作爲''。 Laravel完全可以嗎? –

+0

是的,這正是我在上面的代碼中所做的。只需使用'.blade.php'擴展名的視圖和佈局。在例子中@yield('body')'和你的案例中的''相同。 – manix