layout中用到的变量,如果从控制器传参,需要每个视图都重复操作! 如何解决一次运算后,将结果传递给layout中,供所有视图使用(不想在layout视图中出现业务代码)。
eg: 1. 权限管理,根据不同的用户,设置不同的菜单! 2. 菜单中的动态数字,比如 【当日订单(50)】,那个50需要所有的控制器获取数据后,再传递给视图!
闭关修行中......
有两种方法可以解决:
第一:传统的ViewComposerProvider
ViewComposerProvider
class NavViewComposerProvider extends ServiceProvider { public function boot(){ view()->composer('partials.nav', function ($view) { $view->with('userAtLayout', User::find(Auth::user()->id)); //根据自己的需求改呗 }); } }
第二,Laravel 5.1新特性@inject:
@inject('var','Class') // var 变量名 Class绑定的类名
比如你可以这样:
@inject('nav','App\SiteNav')
在SiteNav中查询数据就可以了。
题外话:认真看文档,可以解决你越到的80%的问题。
Happy Hacking
雷雷
楼上说的方法都不靠谱,获取不了当前url参数来传入你的函数中的
有两种方法可以解决:
第一:传统的
ViewComposerProvider
第二,Laravel 5.1新特性@inject:
比如你可以这样:
在SiteNav中查询数据就可以了。
题外话:认真看文档,可以解决你越到的80%的问题。
Happy Hacking
雷雷
楼上说的方法都不靠谱,获取不了当前url参数来传入你的函数中的