ホームページ  >  記事  >  PHPフレームワーク  >  Laravelはパブリックテンプレートに値を割り当てます

Laravelはパブリックテンプレートに値を割り当てます

步履不停
步履不停オリジナル
2019-06-24 18:12:383014ブラウズ

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 を追加します

##2 /app.php

に view combos

public function boot()
    {
        view()->composer(
            'app', //模板名
            'App\Http\ViewComposers\MovieComposer'  //方法名或者类中的方法
        );
    }
と書きます。これは、app.blade.php がロードされたら、

App\Http を実行することを意味します。 \ViewComposers\MovieComposercomposer 関数 (コンポーザー関数はデフォルトでここで実行されます)。これを変更したい場合は、単に

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。