若是想在每次渲染某些視圖時綁定數據,視圖組件能夠幫你把這樣的程序邏輯都組織到同一個地方。php
public function boot() { // 使用對象型態的視圖組件... view()->composer( 'profile', 'App\Http\ViewComposers\ProfileComposer' ); // 使用閉包型態的視圖組件... view()->composer('dashboard', function ($view) { }); }
App\Providers\ComposerServiceProvider::class
namespace App\Http\ViewComposers; use Illuminate\Contracts\View\View; class ProfileComposer { public function __construct() { // 全部依賴都會自動地被服務容器解析... } //視圖被渲染以前,視圖組件的 compose 方法會被調用,並傳入一個 Illuminate\Contracts\View\View 實例。你能夠使用 with 方法來把數據綁定到視圖。 public function compose(View $view) { $view->with('count', 1); } } 在`profile.blade.php`下填寫`{{$count}}` 在控制器或者路由中直接經過調用view方法返回 __1__即成功
對全部的視圖都進行渲染操做html
或者直接把下面的方法放到`ComposerServiceProvider`服務提供者下 view()->composer('*', function ($view) { $view->with('qq','fucker'); });
或者使用共享在__AppServiceProvider的boot方法laravel
view()->share('key','value');
Blade視圖文件使用__blade.php__做爲擴展名,保存於__resource/views__文件夾內,模板的緩存文件保存在__/storage/framework/views__下express
Blade 的 {{ }} 語法會自動調用 PHP htmlentites 函數來防護 XSS 攻擊。緩存
能夠使用 @ 符號來告知 Blade 渲染引擎該表達式應該維持原樣。閉包
擴充Bladeapp
Blade容許自定義命令,能夠使用directive
方法註冊命令, 在__AppServiceProvider__的boot()方法下composer
return "<?php echo with{$expression}->format('m/d/Y H:i'); ?>"; }); Blade::directive('sb',function(){ return "<?php echo 'hello world' ?>"; });
在視圖層直接使用@調用便可ide