ホームページ >PHPフレームワーク >Laravel >Laravelはパブリックテンプレートに値を割り当てます
開発プロセスでは、上部のナビゲーション バーやページの下部などの公開テンプレートに値が割り当てられることがよくあります。値を割り当てることは不可能です。すべてのコントローラーで。
Laravel での解決策は次のとおりです。
Modify
App\Providers\AppServiceProvider
Add
ブート メソッド View()->composer('common.header',function ($view){ //common.header はブレード テンプレートに対応します
});
すべてのテンプレートに値を割り当てることもできます
View()->share('key', 'value');
======================================
作曲家を見るビューに関連しています。サービス プロバイダーの boot() 関数で使用されます。ビューがロードされると、ビュー コンポーザーの役割により、特定の関数が呼び出され、パラメーターが渡されます。
1、サービスプロバイダーを作成します
php 職人 make:provider ComposerServiceProvider
# の config に ComposerServiceProvider を追加します
に view combos
public function boot() { view()->composer( 'app', //模板名 'App\Http\ViewComposers\MovieComposer' //方法名或者类中的方法 ); }と書きます。これは、app.blade.php がロードされたら、
App\Http を実行することを意味します。 \ViewComposers\MovieComposer の
composer 関数 (コンポーザー関数はデフォルトでここで実行されます)。これを変更したい場合は、単に
view()-> を実行してください。 ;composer('app','App\Http\ViewComposers\MovieComposer@foobar<a href="https://my.oschina.net/u/862816" class="referer" target="_blank">');</a> //独自に定義したメソッド
ここで foobar 関数が実行されます
これを<?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 を App\Http\ViewComposers\MovieComposer.php に書き込み、その他の
すべてのテンプレートでは * 正規表現を使用する必要があります
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 チュートリアル 列にアクセスして学習してください。
以上がLaravelはパブリックテンプレートに値を割り当てますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。