laravel 學習筆記——視圖

視圖,你所看見的部分。

很多人下意識的將視圖和模板引擎掛鉤,這是一種非常不正確的想法。我們稱用於實際負責輸出(可視)數據的就叫做視圖。

因此,視圖不是模板引擎。

  1. <?php
  2. echo 'Hello, world';

上面的這段代碼,我們可以稱之爲視圖,因爲這段代碼輸出了對於客戶端可視的內容。

理解了這一點,我們就可以愉快的去了解 laravel 的視圖。對於框架而言,視圖是作爲框架的組成部分之一,框架中的視圖,其職責更爲單一,不再負責數據的讀寫、處理,而僅僅負責呈現。這樣一個職責獨立的視圖,就需要外部提供數據,也需要外部的調度。而 laravel 的 View 類則正是負責這一工作的。

建議讀者先去閱讀本人的另一篇文章: 用 php 實現一個視圖組件和模板引擎——基礎https://www.insp.top/use-php-to-achieve-view-component-and-template-engine

開始

Laravel 的視圖是一個獨立的組件,並不和 Controller 耦合,可以在任意位置使用 view()來獲取一個視圖。

view() 函數實際上是 View 類的快速訪問方式,可以在該函數的定義中看得到(在文件vendor/laravel/framework/src/illuminate/foundation/helpers.php 中可以查看)。

View 組件在 vendor/laravel/framework/src/illuminate/View/View.php 中定義。

我們一般爲了方便,直接使用 view() 函數

使用

大多數使用方法在文檔中已經有了十分詳細的描述,常見的問題主要在傳遞數據上面。


在下面例子中,任何一種方式都會傳遞兩個變量($content$author)到視圖文件article 中。

  1. // 通過函數創建一個視圖
  2. view('article', ['content' => 'Hello, world', 'author' => 'chongyi']);
  3.  
  4. view('article')->with('title', 'Hello, world')->with('author', 'chongyi');
  5.  
  6. view('article')->withTitle('Hello, world')->withAuthor('chongyi');
  7.  
  8. // 通過 Laravel 的 View Facade 創建一個視圖
  9. use View;
  10.  
  11. View::make('article', ['content' => 'Hello, world', 'author' => 'chongyi']);
  12.  
  13. View::make('article')->with('title', 'Hello, world')->with('author', 'chongyi');
  14.  
  15. View::make('article')->withTitle('Hello, world')->withAuthor('chongyi');
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章