1. 程式人生 > >7. Laravel5學習筆記:如何定義自己的檢視元件

7. Laravel5學習筆記:如何定義自己的檢視元件

檢視元件

檢視元件就是在檢視被渲染前,會呼叫的閉包或類方法。如果你想在每次渲染某些檢視時繫結資料,檢視元件可以把這樣的程式邏輯組織在同一個地方。

對上面的話,理解如下:

  • 這個php程式碼執行的時間是在渲染檢視之前
  • 使用這個元件應該用於每次渲染時,都要繫結資料的檢視上。這樣子就可以從控制器分離出資料繫結邏輯。

它很好的提現了 單一職責 ,對它的概念闡述 請看這裡

使用

在laravel5的文件中已經說明了如何構建自己的檢視元件。這裡在重複一下。

  • 先構建一個檢視元件:
<?php

namespace App\Http\ViewComposers;

use
Illuminate\Contracts\View\View; class ProfileComposer { public function compose(View $view) { $view->withName('profile.test'); } }

相信大家可以看出程式碼位於哪一個目錄下了,我就不多說了。

  • 打造自己的檢視元件服務提供者
<?php

namespace App\Providers;

use Illuminate\Support\ServiceProvider;
use View;

class ComposerServiceProvider
extends ServiceProvider {
/** * Bootstrap the application services. * * @return void */ public function boot() { // 使用類來指定檢視元件 View::composer('profile', 'App\Http\ViewComposers\ProfileComposer'); // 使用閉包來指定檢視元件 /* View::composer('profile', function($view){ $view->with('name', 'laravel'); }); */
} }

接下來,要記得把該服務提供者新增到 config/app.php 配置檔案的 providers 陣列中

  • 構建檢視頁面
    這裡需要構建一個檢視檔案,檔案的名稱必須與註冊時保持一致。這裡我們的檔案就該命名為:
    profile.blade.php 。大家可以嘗試在該檔案中訪問變數 {{ $name }}

如果看到你設定的值,說明你成功了。