7. Laravel5學習筆記:如何定義自己的檢視元件
阿新 • • 發佈:2019-01-27
檢視元件
檢視元件就是在檢視被渲染前,會呼叫的閉包或類方法。如果你想在每次渲染某些檢視時繫結資料,檢視元件可以把這樣的程式邏輯組織在同一個地方。
對上面的話,理解如下:
- 這個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 }}
。
如果看到你設定的值,說明你成功了。