使用laravel怎么向公共模板中传值

发布时间:2021-05-14 17:14:37 作者:Leah
来源:亿速云 阅读:178

使用laravel怎么向公共模板中传值?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

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 是什么

Laravel 是一套简洁、优雅的PHP Web开发框架。它可以让你从面条一样杂乱的代码中解脱出来;它可以帮你构建一个完美的网络APP,而且每行代码都可以简洁、富于表达力。

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。

推荐阅读:
  1. vue中怎么实现子组件向父组件传值
  2. Vue中怎么实现父组件向子组件传值

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

laravel

上一篇:如何使用laravel上传图片

下一篇:怎么在Laravel5.5中实现手动分页和自定义分页样式

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》