若是想在每次渲染某些视图时绑定数据,视图组件能够帮你把这样的程序逻辑都组织到同一个地方。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