Laravel中View Composer和Creator之间的区别? [英] Difference between View Composer and Creator in Laravel?

查看:100
本文介绍了Laravel中View Composer和Creator之间的区别?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

根据 Laravel 4文档.

作曲家是:

视图编写器是在呈现视图时调用的回调或类方法.如果您希望每次在整个应用程序中呈现该视图时都将其绑定到给定的视图,则视图编辑器可以将该代码组织到一个位置.因此,视图编辑器的功能可能类似于视图模型"或演示者".

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());
});

还有

创作者是:

视图创建者的工作几乎与视图创建者的工作完全相同;但是,它们在实例化视图时立即被激发.要注册视图创建者,只需使用creator方法

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变量.像这样:

When you use View::creator you have the chance to override the variables of view in the controller. Like this:

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

这篇关于Laravel中View Composer和Creator之间的区别?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆