ホームページ  >  記事  >  PHPフレームワーク  >  laravel5.5フレームワークでビュー間でデータを共有するにはどうすればよいですか? ビュー間でデータを共有する2つの方法(コードを使用)

laravel5.5フレームワークでビュー間でデータを共有するにはどうすればよいですか? ビュー間でデータを共有する2つの方法(コードを使用)

不言
不言オリジナル
2018-08-02 14:11:393357ブラウズ

laravel フレームワーク内のビュー間でデータを共有するには 2 つの方法があります。1 つは view facade share() メソッドを使用して実装され、もう 1 つは view facade combos() メソッドを使用して実装されます。 2つの方法は?次回の記事の内容を見ていきましょう。

まず第一に、注意すべき点が 1 つあります : View ファサードは、IlluminateContractsViewFactory の基になる実装にアクセスするために使用されます

View facade share() メソッド

間でデータ フラグメントを共有する必要がある場合があります。すべてのビュー、これはビュー ファサードの共有メソッドを使用できます。

1. 通常、apphttpControllersxx の下に基本的なコントローラー BaseController.php を作成します。

ac924c01a08f6900d864ce13cf1f9067initViewShare();    //视图共享数据
    }
    /**
     *  视图共享数据方法
     */
    public function initViewShare()
    {
        view()->share('action_name',get_action_name()); //当前URL的方法器名
     }
}


//视图使用 
//共享视图一般都是在layout中
{{ $action_name }}

get_action_name() はカスタマイズされた関数です。

ヒント:
appHelpersExtmanFun.phpを作成し、composer.jsonの自動ロードを導入します

 "files":[
     "app/Helpers/ExtmanFun.php"
 ]

composer dump-autoloadを実行すると、自動的にロードされます

2、AppServiceProviderサービスプロバイダーのブートメソッドでshareを呼び出します(または作成します)新しいプロバイダー) ()

da2d57d3bdb10de22b42a0069dfc7eb3share('name','共享数据片段');
    }
}

ViewFacade combos() メソッド

ビュー コンポーザーは、ビューがレンダリングされるたびにビューのデータをバインドする必要がある場合のコールバック関数またはクラス メソッドです。ユーザーのログイン情報などのビュー。 Composer() を使用すると、ロジックを別の場所に整理できます。
この例では、AppServiceProvider サービス プロバイダーにビュー コンポーザーを登録します。
プロバイダー コードは次のとおりです。

cc1a47858451ba5ff0ab8b6b1b5c5200composer(
            //'*', 'App\Http\ViewComposers\AuthComposer'
            //['extman.home, welcome'], 'App\Http\ViewComposers\AuthComposer'
            ['extman.*'], 'App\Http\ViewComposers\AuthComposer'
        );

        //使用基于回调函数
        view()->composer('*',function($view){
            $view->with('user',array('name'=>'test','avatar'=>'/path/to/test.jpg'));
        });
    }
other code
}

新しいサービス プロバイダーを作成してビュー コンポーザーの登録を含める場合は、サービス プロバイダーを追加する必要があります。構成ファイル ビューコンポーザーは config/app.php のプロバイダー配列に登録されています。 AuthComposer@compose メソッドは、extman ディレクトリ内のすべてのビューがレンダリングされるたびに実行されます。

ビューコンポーザークラスを定義します AppHttpViewComposersAuthComposer.php

01c01bc34336503a6e00eaa6a82e83a6users = $users;
    }

    //绑定数据到视图
    public function compose(View $view)
    {
        $user_info = \Auth::user();
        $view->with('motto', $user_info);
        $view->with('count', $this->users->count());
    }
}

ビューがレンダリングされる前に、AuthComposer クラスの compose メソッドが呼び出され、IlluminateViewView インスタンスがメソッドに挿入されるため、その with メソッドを使用してデータをバインドできます。景色。

すべてのビュー コンポーザーはサービス コンテナーを通じて解決されるため、ビュー コンポーザーのコンストラクターに注入する必要がある依存関係をタイプヒントで指定できます。

おすすめ関連記事:

LaravelビューとビューComposer_phpインスタンス間の共有データの詳細説明


Laravel 5フレームワーク、ビューへのデータ転送方法を学ぶ、laravelフレームワーク

以上がlaravel5.5フレームワークでビュー間でデータを共有するにはどうすればよいですか? ビュー間でデータを共有する2つの方法(コードを使用)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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