Laravel视图共享数据
Posted tata
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Laravel视图共享数据相关的知识,希望对你有一定的参考价值。
Laravel视图共享数据
最近在用lavavel过程中想实现公共头部尾部需要的配置数据在所有的页面中都可以使用,便查看了官方文档,在此做一个总结:
一. 修改 ComposerServiceProvider 服务
在app/Providers目录下面找到ComposerServiceProvider.php 文件,将其修改成如下面类似:
<?php namespace AppProviders; use IlluminateSupportServiceProvider; class ComposerServiceProvider extends ServiceProvider { /** * Bootstrap the application services. * * @return void */ public function boot() { view()->composer( ‘home.*‘, ‘AppHttpViewComposersBaseInfoComposer‘ ); } /** * Register the application services. * * @return void */ public function register() { // } }
注意:composer的第一个参数是需要公用数据的试图问题,我这边是home下的所有文件,第二个参数是具体要执行的文件。
二 . 处理数据获取并渲染
创建AppHttpViewComposersBaseInfoComposer.php 这个文件,将其修改成如下面类似:
<?php namespace AppHttpViewComposers; use IlluminateViewView; use AppHttpModelsBackendNav; use AppHttpModelsBackendConfig; class BaseInfoComposer { /** * 将数据绑定到视图。 * * @param View $view * @return void */ public function compose(View $view) { $view->with([ ‘nav‘=>Nav::where(‘is_delete‘,1)->orderBy(‘sort‘,‘desc‘)->get(), ‘base‘=>json_decode(Config::where(‘name‘,‘基本配置‘)->value(‘configs‘),true), ‘other‘=>json_decode(Config::where(‘name‘,‘其它配置‘)->value(‘configs‘),true), ]); } }
三. 注册服务
在config/app.php
文件下的providers
数组中进行注册:
AppProvidersComposerServiceProvider::class,
再在页面中就都可以调用了
以上是关于Laravel视图共享数据的主要内容,如果未能解决你的问题,请参考以下文章
需要一种有效的方法来避免使用 Laravel 5 重复代码片段