php – Laravel 4中的View Composer和Creator之间的区别?

根据Laravel 4 documentation.

作曲者是:

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

转载注明原文:php – Laravel 4中的View Composer和Creator之间的区别? - 代码日志