Laravel向公共模板赋值方法总结


Posted in PHP onJune 25, 2019

开发过程中许多时候都会向公共模板赋值,比如顶部导航栏,页面底部等等,不可能在每个控制器中都赋值一遍。

Laravel 中解决办法如下: 修改

App\Providers\AppServiceProvider

在boot方法中添加

View()->composer('common.header',function ($view){ //common.header 对应Blade模板 $view->with('key', 'value'); });

也可以向所有模板中赋值

View()->share('key', 'value');

view composers 与视图有关,用在一个service provider 的boot()函数里,就是让一个view加载的时候,由于view composer的作用,去调用某个函数传个参啊啥的。

1,创建service provider

php artisan make:provider ComposerServiceProvider

再把ComposerServiceProvider加到config/app.php里面

2,写view composer

public function boot()  {    view()->composer(      'app', //模板名      'App\Http\ViewComposers\MovieComposer' //方法名或者类中的方法    );  }

意思是一旦加载app.blade.php,就执行App\Http\ViewComposers\MovieComposer里的composer函数(这里之所以执行composer函数是默认的),如果你想换一个就

view()->composer('app','App\Http\ViewComposers\MovieComposer@foobar'); //自己定义的方法

这里就执行foobar函数了

App\Http\ViewComposers\MovieComposer.php里这么写

<?phpnamespace App\Http\ViewComposers;use Illuminate\View\View;//**记得引入这个啊(因为在composer函数参数里使用了View类)**class MovieComposer{  public $movieList = [];  public function __construct()  {    $this->movieList = [      'Shawshank redemption',      'Forrest Gump',    ];  }  public function compose(View $view)  {    $view->with('latestMovie');  }}

3,其他 当所有模板都要,用*正则表达式

view()->composer('*', function (View $view) {  //logic goes here});

想要指定多个view使用,用数组包起来

view()->composer(['nav', 'footer'],'App\Http\ViewComposers\MovieComposer');或者 view()->composer(['admin.admin'], function ($view){      $column = $this->object_array(DB::table('column')->get());      foreach($column as $k=>$v){        $chid = explode(',',$v['childid']);        foreach($chid as $value){          $column[$k]['chname'][] = $this->object_array(DB::table('column_child')->where('id',$value)->first());        }      }      $view->with('columns',$column);    });
PHP 相关文章推荐
PHP合并两个数组的两种方式的异同
Sep 14 PHP
php中使用preg_match_all匹配文章中的图片
Feb 06 PHP
PHP产生不重复随机数的5个方法总结
Nov 12 PHP
8个PHP数组面试题
Jun 23 PHP
WordPress中邮件的一些修改和自定义技巧
Dec 15 PHP
WordPress中自定义后台管理界面配色方案的小技巧
Dec 29 PHP
PHP中调用C/C++制作的动态链接库的教程
Mar 10 PHP
php中的异常和错误浅析
May 03 PHP
php使用curl伪造来源ip和refer的方法示例
May 08 PHP
Yii框架的路由配置方法分析
Sep 09 PHP
php设计模式之模板模式实例分析【星际争霸游戏案例】
Mar 24 PHP
PHP数组与字符串互相转换实例
May 05 PHP
php常用字符串长度函数strlen()与mb_strlen()用法实例分析
Jun 25 #PHP
PHP中遍历数组的三种常用方法实例分析
Jun 24 #PHP
php字符串过滤strip_tags()函数用法实例分析
Jun 24 #PHP
提高Laravel应用性能方法详解
Jun 24 #PHP
PHP二维索引数组的遍历实例分析【2种方式】
Jun 24 #PHP
PHP中的self关键字详解
Jun 23 #PHP
php面向对象程序设计入门教程
Jun 22 #PHP
You might like
IIS下PHP连接数据库提示mysql undefined function mysql_connect()
2010/06/04 PHP
关于php循环跳出的问题
2013/07/01 PHP
微信扫描二维码登录网站代码示例
2013/12/30 PHP
老版本PHP转义Json里的特殊字符的函数
2015/06/08 PHP
php分页原理 分页代码 分页类制作教程
2016/09/23 PHP
PHP实现的一致性Hash算法详解【分布式算法】
2018/03/31 PHP
针对PHP开发安全问题的相关总结
2019/03/22 PHP
Div Select挡住的解决办法
2008/08/07 Javascript
javascript动态加载实现方法一
2012/08/22 Javascript
json属性名为什么要双引号(个人猜测)
2014/07/31 Javascript
原生javascript实现的分页插件pagenav
2014/08/28 Javascript
node.js中的querystring.parse方法使用说明
2014/12/10 Javascript
NodeJs中的VM模块详解
2015/05/06 NodeJs
深入理解 JavaScript 中的 JSON
2017/04/06 Javascript
Bootstrap 3浏览器兼容性问题及解决方案
2017/04/11 Javascript
jQuery Datatable 多个查询条件自定义提交事件(推荐)
2017/08/24 jQuery
用React-Native+Mobx做一个迷你水果商城APP(附源码)
2017/12/25 Javascript
elementUI select组件默认选中效果实现的方法
2019/03/25 Javascript
vue实现搜索过滤效果
2019/05/28 Javascript
JS如何在数组指定位置插入元素
2020/03/10 Javascript
Android分包MultiDex策略详解
2017/10/30 Python
Python3编码问题 Unicode utf-8 bytes互转方法
2018/10/26 Python
python 列表递归求和、计数、求最大元素的实例
2018/11/28 Python
python中比较两个列表的实例方法
2019/07/04 Python
在Python3.74+PyCharm2020.1 x64中安装使用Kivy的详细教程
2020/08/07 Python
html5视频常用API接口的实战示例
2020/03/20 HTML / CSS
红色康乃馨酒店:Red Carnation Hotels
2017/06/22 全球购物
介绍一下常见的木马种类
2014/11/15 面试题
精细化工应届生求职信
2013/11/17 职场文书
2014年大学生四年规划书范文
2014/04/03 职场文书
员工薪酬激励方案
2014/06/13 职场文书
退伍军人感言
2015/08/01 职场文书
2016年中秋祝酒词
2015/11/26 职场文书
Django与数据库交互的实现
2021/06/03 Python
Python函数中的不定长参数相关知识总结
2021/06/24 Python
angular4实现带搜索的下拉框
2022/03/25 Javascript