Laravel 中 View Composer 和 Helper 的区别?
Difference between View Composer and Helper in Laravel?
不知道有没有问过同样的问题。但是有人可以解释这 2 Laravel 功能之间的区别吗? & 何时使用哪一个?
在Laravel的上下文中,Helper是一个全局函数,可用于对数组、字符串等执行特定操作。对于例如,假设您需要对字符串进行 slugify:
$title = str_slug('Laravel 5 Framework', '-');
// laravel-5-framework
-- 使用 str_slug()
助手(函数)轻松完成。
View composers, 另一方面...
...are callbacks or class methods that are called when a view is
rendered. If you have data that you want to be bound to a view each
time that view is rendered, a view composer can help you organize that
logic into a single location.
换句话说,它们不是简单的函数,而是当您需要确保变量(资源)在多个视图中可用时使用的框架结构。
例如,下面的代码将确保 每次 呈现 sidebar.blade.php
视图时,它都可以访问 $navigation
变量:
// Using Closure, within a Service Provider...
View::composer('sidebar', function ($view) {
$navigation = array(/*...*/);
$view->with('navigation', $navigation);
});
这意味着您只是集中了导航源,而不是从处理侧边栏页面的每个控制器传递导航项。
不知道有没有问过同样的问题。但是有人可以解释这 2 Laravel 功能之间的区别吗? & 何时使用哪一个?
在Laravel的上下文中,Helper是一个全局函数,可用于对数组、字符串等执行特定操作。对于例如,假设您需要对字符串进行 slugify:
$title = str_slug('Laravel 5 Framework', '-');
// laravel-5-framework
-- 使用 str_slug()
助手(函数)轻松完成。
View composers, 另一方面...
...are callbacks or class methods that are called when a view is rendered. If you have data that you want to be bound to a view each time that view is rendered, a view composer can help you organize that logic into a single location.
换句话说,它们不是简单的函数,而是当您需要确保变量(资源)在多个视图中可用时使用的框架结构。
例如,下面的代码将确保 每次 呈现 sidebar.blade.php
视图时,它都可以访问 $navigation
变量:
// Using Closure, within a Service Provider...
View::composer('sidebar', function ($view) {
$navigation = array(/*...*/);
$view->with('navigation', $navigation);
});
这意味着您只是集中了导航源,而不是从处理侧边栏页面的每个控制器传递导航项。