我想动态地制作菜单,因此显示“本月电影”而不是“十二月电影”(参见图片);十二月是每月更新的当前月份
我的问题是菜单不属于特定的路由/控制器,因此我无法像其他路由一样传递变量。例子:
$month = Carbon::now()->format('F');
return view('partials._nav')
->withMonth($month);
我可以“解决”这个问题,将月份传递给所有控制器/路线,但我多次重复相同的代码。
我的问题是
1-Laravel 中是否有任何方法可以将变量传递给某种根状态(例如在 Angular 中),因此我可以在应用程序的所有路由中保留该变量?
2-有什么方法可以将变量返回到多个视图吗?所以我只是将变量传递给所有可能的视图,例如:
return view('films.all', 'films.show', 'films.index', 'actors.show', 'actors.index')
->withMonth($month);
任何想法将不胜感激
UPDATE
最后我有了解决方案:
public function boot()
{
View::composer('*', function ($view) {
$month = Carbon::now()->format('F');
$view->withMonth($month);
});
}
您可以使用share() https://laravel.com/docs/5.3/views#sharing-data-with-all-views方法将数据共享到多个视图。将以下代码放入您的boot()
的方法App/Providers/AppServiceProvider
:
public function boot()
{
view()->share('key', 'value');
}
Docs https://laravel.com/docs/5.3/views#sharing-data-with-all-views
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)