개발 과정에서 상단 탐색바, 페이지 하단 등 공개 템플릿에 값이 할당되는 경우가 많습니다. 모든 컨트롤러에 값을 할당하는 것은 불가능합니다.
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.php
config/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가 로드되면 AppHttpViewComposersMovieComposer
의 composer
함수가 실행됩니다(기본적으로 여기에서 작곡가 함수가 실행됩니다). 그냥 view()->composer('app','AppHttpViewComposersMovieComposer<a href="https://my.oschina.net/u/862816" class="referer" target="_blank"> @foobar<br>');</a>
//자신이 정의한 메소드
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'); } }
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); });
위 내용은 Laravel은 공개 템플릿에 값을 할당합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!