当前位置: 首页 > 后端技术 > PHP

laravel5.5视图共享数据

时间:2023-03-29 20:01:38 PHP

视图之间共享数据要在所有视图之间共享数据片段,您可以使用视图门面的共享方法。1.一般情况下,我会在app\http\Controllers\xx下创建一个基础控制器BaseController.php,initViewShare();//查看分享数据}/***查看分享数据方法*/publicfunctioninitViewShare(){view()->share('action_name',get_action_name());//当前URL的方法名}}//视图使用//共享视图一般在布局中{{$action_name}}get_action_name()是自定义函数。tips:创建app\Helpers\ExtmanFun.php,composer.json的autoloadimport"files":["app/Helpers/ExtmanFun.php"]runcomposerdump-autoload会自动加载2、在AppServiceProvider服务提供者(或者创建一个newprovider)在启动方法中调用share()share('name','shareddatafragment');}}viewcomposer()viewcomposer是视图渲染时的回调函数或类方法,如果你想在每次渲染视图时绑定视图的数据,比如用户登录信息。可以使用composer()将逻辑组织到一个地方。在此示例中,我们将在AppServiceProvider服务提供者中注册视图合成器。Provider代码如下:composer(//'*','App\Http\ViewComposers\AuthComposer'//['extman.home,欢迎'],'App\Http\ViewComposers\AuthComposer'['extman.*'],'App\Http\ViewComposers\AuthComposer');//使用回调函数view()->composer('*',function($view){$view->with('user',array('name'=>'test','avatar'=>'/path/to/test.jpg'));});}othercode}如果新建服务提供者包含viewcomposer注册,则需要将服务提供者添加到viewcomposer目前已经注册到配置文件config/app.php的providers数组中,并且每次渲染extman目录中的所有视图时,都会执行AuthComposer@compose方法。定义视图编辑器类App\Http\ViewComposers\AuthComposer.phpusers=$users;}//绑定数据到视图publicfunctioncompose(View$view){$user_info=\Auth::user();$view->with('格言',$user_info);$view->with('count',$this->users->count());}}在视图渲染之前,会调用AuthComposer类的compose方法,并在该方法中注入Illuminate\View\View实例,以便使用其with方法将数据绑定到视图。所有视图组合器都通过服务容器解析,因此您可以类型提示需要在视图组合器构造函数中注入的依赖项。

最新推荐
猜你喜欢