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中判断一个字符串包含另一个字符串的方法
Mar 19 PHP
php Smarty模板生成html文档的方法
Apr 12 PHP
PHP中的array数组类型分析说明
Jul 27 PHP
PHP 数组和字符串互相转换实现方法
Mar 26 PHP
php判断终端是手机还是电脑访问网站的思路及代码
Apr 24 PHP
php获取一个变量的名字的方法
Sep 05 PHP
html静态页面调用php文件的方法
Nov 13 PHP
php正则preg_replace_callback函数用法实例
Jun 01 PHP
thinkPHP数据库增删改查操作方法实例详解
Dec 06 PHP
PHP计算近1年的所有月份
Mar 13 PHP
Laravel5.1 框架数据库操作DB运行原生SQL的方法分析
Jan 07 PHP
php远程请求CURL案例(爬虫、保存登录状态)
Apr 01 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
dede3.1分页文字采集过滤规则详说(图文教程)
2007/04/03 PHP
php mysql索引问题
2008/06/07 PHP
PHP统计二维数组元素个数的方法
2013/11/12 PHP
2个自定义的PHP in_array 函数,解决大量数据判断in_array的效率问题
2014/04/08 PHP
解析PHP强制转换类型及远程管理插件的安全隐患
2014/06/30 PHP
php实现的用户查询类实例
2015/06/18 PHP
fsockopen pfsockopen函数被禁用,SMTP发送邮件不正常的解决方法
2015/09/20 PHP
动态刷新 dorado树的js代码
2009/06/12 Javascript
JS 面向对象的5钟写法
2009/07/31 Javascript
jquery无缝向上滚动实现代码
2013/03/29 Javascript
利用js的Node遍历找到repeater的一个字段实例介绍
2013/04/25 Javascript
js中的布尔运算符使用介绍
2013/11/20 Javascript
js中indexof的用法详细解析
2013/12/24 Javascript
JS中判断JSON数据是否存在某字段的方法
2014/03/07 Javascript
nodejs创建web服务器之hello world程序
2015/08/20 NodeJs
JavaScript中对JSON对象的基本操作示例
2016/05/21 Javascript
关于JavaScript和jQuery的类型判断详解
2016/10/08 Javascript
jQuery插件HighCharts绘制2D带Label的折线图效果示例【附demo源码下载】
2017/03/08 Javascript
layui实现动态和静态分页
2018/04/28 Javascript
node.js中express模块创建服务器和http模块客户端发请求
2019/03/06 Javascript
利用不到200行代码写一款属于你自己的js类库
2019/07/08 Javascript
vue中keep-alive内置组件缓存的实例代码
2020/04/16 Javascript
JavaScript实现简单动态表格
2020/12/02 Javascript
Python调用C/C++动态链接库的方法详解
2014/07/22 Python
解决python3中自定义wsgi函数,make_server函数报错的问题
2017/11/21 Python
基于python 处理中文路径的终极解决方法
2018/04/12 Python
Python Threading 线程/互斥锁/死锁/GIL锁
2019/07/21 Python
python3.x提取中文的正则表达式示例代码
2019/07/23 Python
解决python3 requests headers参数不能有中文的问题
2019/08/21 Python
python使用Geany编辑器配置方法
2020/02/21 Python
sublime3之内网安装python插件Anaconda的流程
2020/11/10 Python
CSS实现半透明边框与多重边框的场景分析
2019/11/13 HTML / CSS
十八届三中全会学习方案
2014/02/16 职场文书
社团活动总结报告
2014/06/27 职场文书
2014年文员工作总结
2014/11/18 职场文书
拯救大兵瑞恩观后感
2015/06/09 职场文书