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 相关文章推荐
模仿OSO的论坛(一)
Oct 09 PHP
php Static关键字实用方法
Jun 04 PHP
php addslashes及其他清除空格的方法是不安全的
Jan 25 PHP
九个你必须知道而且又很好用的php函数和特点
Aug 08 PHP
php集成套件服务器xampp安装使用教程(适合第一次玩PHP的新手)
Jun 03 PHP
PHP模板引擎Smarty内建函数详解
Apr 11 PHP
详解yii2使用多个数据库的案例
Jun 16 PHP
php在windows环境下获得cpu内存实时使用率(推荐)
Feb 08 PHP
thinkPHP3.2.2框架行为扩展及demo示例
Jun 19 PHP
PHP结合jquery ajax实现上传多张图片,并限制图片大小操作示例
Mar 01 PHP
TP5框架页面跳转样式操作示例
Apr 05 PHP
PHP 实现缩略图
Mar 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
PHP __autoload函数(自动载入类文件)的使用方法
2012/02/04 PHP
如何用PHP实现插入排序?
2013/04/10 PHP
PHP实现获取域名的方法小结
2014/11/05 PHP
php实现的单一入口应用程序实例分析
2015/09/23 PHP
Yii2实现中国省市区三级联动实例
2017/02/08 PHP
thinkphp5.0自定义验证规则使用方法
2017/11/16 PHP
比较详细的关于javascript中void(0)的具体含义解释
2007/08/02 Javascript
JavaScript DOM 学习第五章 表单简介
2010/02/19 Javascript
jquery isType() 类型判断代码
2011/02/14 Javascript
THREE.JS入门教程(4)创建粒子系统
2013/01/24 Javascript
Javascript实现简单二级下拉菜单实例
2014/06/15 Javascript
JavaScript判断IE版本型号
2015/07/27 Javascript
基于AngularJS实现页面滚动到底自动加载数据的功能
2015/10/16 Javascript
JavaScript操作选择对象的简单实例
2016/05/16 Javascript
关于JavaScript中事件绑定的方法总结
2016/10/26 Javascript
如何处理JSON中的特殊字符
2016/11/30 Javascript
微信小程序开发之麦克风动画 帧动画 放大 淡出
2017/04/18 Javascript
JavaScript之浏览器对象_动力节点Java学院整理
2017/07/03 Javascript
微信小程序request请求后台接口php的实例详解
2017/09/20 Javascript
vue单页开发父子组件传值思路详解
2018/05/18 Javascript
JavaScript插入排序算法原理与实现方法示例
2018/08/06 Javascript
详解jQuery中的getAll()和cleanData()
2019/04/15 jQuery
vue resource发送请求的几种方式
2019/09/30 Javascript
vue keep-alive 动态删除组件缓存的例子
2019/11/04 Javascript
KnockoutJS数组比较算法实例详解
2019/11/25 Javascript
[01:53]2016完美“圣”典风云人物:Maybe专访
2016/12/05 DOTA
Python查询Mysql时返回字典结构的代码
2012/06/18 Python
python简单实现计算过期时间的方法
2015/06/09 Python
Python中第三方库Requests库的高级用法详解
2017/03/12 Python
python实现unicode转中文及转换默认编码的方法
2017/04/29 Python
Python协程的用法和例子详解
2017/09/09 Python
Python2与python3中 for 循环语句基础与实例分析
2017/11/20 Python
Python3使用TCP编写一个简易的文件下载器功能
2019/05/08 Python
利用python绘制中国地图(含省界、河流等)
2020/09/21 Python
前端canvas水印快速制作(附完整代码)
2019/09/19 HTML / CSS
建国大业观后感600字
2015/06/01 职场文书