>  기사  >  PHP 프레임워크  >  Laravel은 공개 템플릿에 값을 할당합니다.

Laravel은 공개 템플릿에 값을 할당합니다.

步履不停
步履不停원래의
2019-06-24 18:12:383001검색

Laravel은 공개 템플릿에 값을 할당합니다.

개발 과정에서 상단 탐색바, 페이지 하단 등 공개 템플릿에 값이 할당되는 경우가 많습니다. 모든 컨트롤러에 값을 할당하는 것은 불가능합니다.

Laravel의 솔루션은 다음과 같습니다.
수정

AppProvidersAppServiceProvider

Add

View()->composer('common.header',function ($view){ //common.header 해당 블레이드 템플릿
            $view->with('key', 'value');
  });

모든 템플릿에 ​​​​값을 할당할 수도 있습니다

View()->share(' 키', '값');

===================================== ==

view composers 서비스 제공자의 boot() 함수에서 사용되는 뷰 컴포저의 역할로 인해 특정 함수를 호출하고 매개변수를 전달합니다.

1. 서비스 제공자 생성

php artisan make:provider ComposerServiceProvider

ComposerServiceProvider를 config/app.phpconfig/app.php里面

2,写view composer

public function boot()
    {
        view()->composer(
            'app', //模板名
            'App\Http\ViewComposers\MovieComposer'  //方法名或者类中的方法
        );
    }

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

view()->composer('app','AppHttpViewComposersMovieComposer<a href="https://my.oschina.net/u/862816" class="referer" target="_blank">@foobar</a>'); //自己定义的方法

这里就执行foobar函数了

AppHttpViewComposersMovieComposer.php

2에 추가하세요. 2. app.blade.php가 로드되면 AppHttpViewComposersMovieComposercomposer 함수가 실행됩니다(기본적으로 여기에서 작곡가 함수가 실행됩니다). 그냥 view()->composer('app','AppHttpViewComposersMovieComposer<a href="https://my.oschina.net/u/862816" class="referer" target="_blank"> @foobar<br>');</a> //자신이 정의한 메소드

foobar 함수는 여기서 실행됩니다

AppHttpViewComposersMovieComposer.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()->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 Tutorial🎜 컬럼을 방문하세요. 배우다! 🎜

위 내용은 Laravel은 공개 템플릿에 값을 할당합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.