视图组件就是在视图被渲染前,会调用的闭包或类方法。如果你想在每次渲染某些视图时绑定数据,视图组件可以把这样的程序逻辑组织在同一个地方。
对上面的话,理解如下:
它很好的提现了 单一职责 ,对它的概念阐述 请看这里
在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 }}
。如果看到你设置的值,说明你成功了。
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:http://blog.csdn.net/hel12he/article/details/46729599