作曲家是:
View composers are callbacks or class methods that are called when a view is rendered. If you have data that you want bound to a given view each time that view is rendered throughout your application, a view composer can organize that code into a single location. Therefore, view composers may function like “view models” or “presenters”.
View::composer('profile', function($view)
{
$view->with('count', User::count());
});
和
创作者是:
View creators work almost exactly like view composers; however, they are fired immediately when the view is instantiated. To register a view creator, simple use the creator method
View::creator('profile', function($view)
{
$view->with('count', User::count());
});
所以问题是:有什么区别?
解决方法:
当您使用View :: creator时,您有机会覆盖控制器中的视图变量.像这样:
View::creator('layout', function($view) {
$view->with('foo', 'bar');
});
// in controller
return View::make('layout')->with('foo', 'not bar at all');
// it's defined as 'not bar at all' in the view
–
View::composer('hello', function($view) {
$view->with('foo', 'bar');
});
// in controller
return View::make('hello')->with('foo', 'not bar at all');
// it's defined as 'bar' in the view