laravel 实现向公共模板中传值 (view composer)

 更新时间:2019年10月22日 08:36:24   作者:即墨丹青  
今天小编就为大家分享一篇laravel 实现向公共模板中传值 (view composer),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

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里这么写

<?php

namespace 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);
  });

以上这篇laravel 实现向公共模板中传值 (view composer)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 腾讯QQ微博API接口获取微博内容

    腾讯QQ微博API接口获取微博内容

    腾讯QQ微博API接口获取微博内容的实例。
    2013-10-10
  • php生成图片验证码-附五种验证码

    php生成图片验证码-附五种验证码

    这篇文章主要给大家讲解php生成图片验证码,包括数字验证码、数字和字母验证码、中文验证码、仿google验证码、算术验证码,实现此功能主要通过GD库,生成一张带有验证码的图片,并把验证码存在session中,本文讲解的比较全面,需要的朋友可以参考下
    2015-08-08
  • php中的filesystem文件系统函数介绍及使用示例

    php中的filesystem文件系统函数介绍及使用示例

    这篇文章主要介绍了php中的filesystem文件系统函数使用示例,需要的朋友可以参考下
    2014-02-02
  • PHP大文件分片上传的实现方法

    PHP大文件分片上传的实现方法

    在网站开发中,经常会有上传文件的需求,有的文件size太大直接上传,经常会导致上传过程中耗时太久,大量占用带宽资源,因此有了分片上传。接下来通过本文给大家介绍PHP大文件分片上传的实现方法,需要的朋友可以参考下
    2018-10-10
  • laravel 解决Eloquent ORM的save方法无法插入数据的问题

    laravel 解决Eloquent ORM的save方法无法插入数据的问题

    今天小编就为大家分享一篇laravel 解决Eloquent ORM的save方法无法插入数据的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-10-10
  • laravel实现上传图片,并且制作缩略图,按照日期存放的代码

    laravel实现上传图片,并且制作缩略图,按照日期存放的代码

    今天小编就为大家分享一篇laravel实现上传图片,并且制作缩略图,按照日期存放的代码,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-10-10
  • PHP 验证登陆类分享

    PHP 验证登陆类分享

    本文给大家介绍的是用php实现的用户登录与验证的一段代码,没有把登录和数据库查询分开,有需要的朋友,可以参考学习下
    2015-03-03
  • PHP将页面中点击数量高的链接进行高亮显示的方法

    PHP将页面中点击数量高的链接进行高亮显示的方法

    这里来介绍PHP将页面中点击数量高的链接进行高亮显示的方法,主要受到WordPress中某插件的启发,需要的朋友可以参考下
    2016-05-05
  • php的declare命令及用法详解

    php的declare命令及用法详解

    declare是用来设定一段代码的执行指令,declare结构用于全局范围,影响到其后的所有代码,今天小编给大家普及php的declare命令及用法知识,感兴趣的朋友一起看看吧
    2021-06-06
  • 分享8个Laravel模型时间戳使用技巧小结

    分享8个Laravel模型时间戳使用技巧小结

    这篇文章主要介绍了分享8个Laravel模型时间戳使用技巧小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02

最新评论