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 相关文章推荐
抓取YAHOO股票报价的类
May 15 PHP
PHP 根据IP地址控制访问的代码
Apr 22 PHP
php制作中间带自己定义图片二维码的方法
Jan 27 PHP
PHP中session变量的销毁
Feb 27 PHP
php实现读取内存顺序号
Mar 29 PHP
php类的扩展和继承用法实例
Jun 20 PHP
Linux系统中设置多版本PHP共存配合Nginx服务器使用
Dec 21 PHP
php中的单引号、双引号和转义字符详解
Feb 16 PHP
PHP用正则匹配form表单中所有元素的类型和属性值实例代码
Feb 28 PHP
Laravel框架控制器的request与response用法示例
Sep 30 PHP
PHPStorm2020.1永久激活及下载更新至2020(推荐)
Sep 25 PHP
HTTP头隐藏PHP版本号实现过程解析
Dec 09 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
重量级动漫纷纷停播!唯独OVERLORD第四季正在英魂之刃继续更新
2020/05/06 日漫
(PHP实现)只使用++运算实现加法,减法,乘法,除法
2013/06/27 PHP
PHP5.2中PDO的简单使用方法
2016/03/25 PHP
PHP上传图片、删除图片简单实例
2016/11/12 PHP
thinkPHP5实现的查询数据库并返回json数据实例
2017/10/23 PHP
PHP删除数组中指定下标的元素方法
2018/02/03 PHP
php实现大文件断点续传下载实例代码
2019/10/01 PHP
Mozilla 表达式 __noSuchMethod__
2009/04/05 Javascript
javascript 面向对象编程 function也是类
2009/09/17 Javascript
jquery中获取id值方法小结
2013/09/22 Javascript
javascript跨浏览器的属性判断方法
2014/03/16 Javascript
Javascript常用小技巧汇总
2015/06/24 Javascript
莱鸟介绍window.print()方法
2016/01/06 Javascript
JavaScript的函数式编程基础指南
2016/03/19 Javascript
jQuery web 组件 后台日历价格、库存设置的代码
2016/10/14 Javascript
详谈js中数组(array)和对象(object)的区别
2017/02/27 Javascript
详解vue使用vue-layer-mobile组件实现toast,loading效果
2018/08/31 Javascript
js实现简单模态框实例
2018/11/16 Javascript
Nuxt的动态路由和参数校验操作
2020/11/09 Javascript
[02:43]2018DOTA2亚洲邀请赛主赛事首日TOP5
2018/04/04 DOTA
[01:11:28]DOTA2-DPC中国联赛定级赛 RNG vs Phoenix BO3第一场 1月8日
2021/03/11 DOTA
Python判断变量是否已经定义的方法
2014/08/18 Python
Python使用shelve模块实现简单数据存储的方法
2015/05/20 Python
详谈Python中列表list,元祖tuple和numpy中的array区别
2018/04/18 Python
详解Python中的正则表达式
2018/07/08 Python
对numpy下的轴交换transpose和swapaxes的示例解读
2019/06/26 Python
tensorflow没有output结点,存储成pb文件的例子
2020/01/04 Python
Django使用list对单个或者多个字段求values值实例
2020/03/31 Python
文件上传服务器-jupyter 中python解压及压缩方式
2020/04/22 Python
Python 如何实现访问者模式
2020/07/28 Python
html5文字阴影效果text-shadow使用示例
2013/07/25 HTML / CSS
澳大利亚在线家具店:Luxo Living
2019/03/24 全球购物
新西兰杂志订阅:isubscribe
2019/08/26 全球购物
促销活动总结
2014/04/28 职场文书
2016年植树节红领巾广播稿
2015/12/17 职场文书
类和原型的设计模式之复制与委托差异
2022/07/07 Javascript