Difference between View Composer and Creator in Laravel?(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
时,您有机会覆盖控制器中的视图变量.像这样:
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 的区别?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:Laravel 中 View Composer 和 Creator 的区别?
基础教程推荐
- 如何在 Symfony 和 Doctrine 中实现多对多和一对多? 2022-01-01
- PHP 守护进程/worker 环境 2022-01-01
- 在 CakePHP 2.0 中使用 Html Helper 时未定义的变量 2021-01-01
- 在 yii2 中迁移时出现异常“找不到驱动程序" 2022-01-01
- Doctrine 2 - 在多对多关系中记录更改 2022-01-01
- phpmyadmin 错误“#1062 - 密钥 1 的重复条目‘1’" 2022-01-01
- 使用 PDO 转义列名 2021-01-01
- 找不到类“AppHttpControllersDB",我也无法使用新模型 2022-01-01
- 如何在 XAMPP 上启用 mysqli? 2021-01-01
- HTTP 与 FTP 上传 2021-01-01