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

2025-05-27 0 54

view composers 与视图有关,用在一个service provider 的boot()函数里,就是让一个view加载的时候,由于view composer的作用,去调用某个函数传个参啊啥的。

1,创建service provider

?

1
php artisan make:provider ComposerServiceProvider

再把ComposerServiceProvider加到config/app.php里面

2,写view composer

?

1

2

3

4

5

6

7
public function boot()

{

view()->composer(

'app', //模板

'App\\Http\\ViewComposers\\MovieComposer' //方法名或者类中的方法

);

}

意思是一旦加载app.blade.php,就执行App\\Http\\ViewComposers\\MovieComposer里的composer函数(这里之所以执行composer函数是默认的),如果你想换一个就

?

1
view()->composer('app','App\\Http\\ViewComposers\\MovieComposer@foobar'); //自己定义的方法

这里就执行foobar函数了

在App\\Http\\ViewComposers\\MovieComposer.php里这么写

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21
<?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,其他

当所有模板都要,用*正则表达式

?

1

2

3
view()->composer('*', function (View $view) {

//logic goes here

});

想要指定多个view使用,用数组包起来

?

1
view()->composer(['nav', 'footer'],'App\\Http\\ViewComposers\\MovieComposer');

或者

?

1

2

3

4

5

6

7

8

9

10
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)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持快网idc。

原文链接:https://blog.csdn.net/qq_26282869/article/details/80759884

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 laravel 实现向公共模板中传值 (view composer) https://www.kuaiidc.com/70969.html

相关文章

发表评论
暂无评论