我已经使用AppServiceProvider的boot方法在所有视图之间成功共享了一个变量。 现在,我想知道是否可以修改此共享值。 现在,当我尝试修改它时,在页面重新加载时它不起作用,但是如果我将其显示为dd值,则表明它已被修改,但是在每次页面重新加载时,它都会重置为其初始值。 在 ...
提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供 中文繁体 英文版本 中英对照 版本,有任何建议请联系yoyou2525@163.com。
考虑以下路线:
Route::get('/', function()
{
$categories = Category::all()->toHierarchy();
$stats = array(
'total_users' => User::all()->count(),
'total_services' => 5,
'total_orders' => 2,
'latest_service' => '1 hour ago'
);
return View::make('homepage')
->with('categories', $categories)
->with('stats', $stats);
});
但是我在所有视图中都需要$ categories和$ stats! 我不想在每个视图或控制器中重复数据库调用,我将如何实现它?
您正在寻找View Composers 。 它们使您可以在渲染某个视图(或所有通过*
视图)时运行一些代码。
View::composer('*', function($view){
$categories = Category::all()->toHierarchy();
$stats = array(
'total_users' => User::all()->count(),
'total_services' => 5,
'total_orders' => 2,
'latest_service' => '1 hour ago'
);
$view->with('categories', $categories)
->with('stats', $stats);
}
您可以将此代码放在app/filters.php
或创建一个新文件app/composers.php
并通过添加require app_path().'/composers.php';
包含它require app_path().'/composers.php';
在app/start/global.php
的末尾
您可以使用简单的方法:
View::share('data', $data);
View::make....
用于将变量传递给所有视图。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.