はじめに
Laravel 5 アプリケーションのすべてのビューにデータを渡すと、コードを強化できます再利用性を高め、ビュー全体で一貫したデータ コンテキストを提供します。この記事では、Laravel 5 でこれを実現するさまざまな方法について説明します。
BaseController の使用
このアプローチには、Laravel の Controller クラスを拡張する BaseController クラスの作成が含まれます。グローバル データは BaseController クラスの __construct() メソッド内で設定でき、BaseController から継承する他のすべてのコントローラーはこのデータにアクセスできます。
class BaseController extends Controller { public function __construct() { // Access your global data here $user = User::all(); View::share('user', $user); } }
フィルターの使用
フィルターは、すべてのリクエストの前にコードを実行するメカニズムを提供します。グローバル データは before フィルター内に設定でき、すべてのビューで利用できるようになります。
App::before(function($request) { // Access your global data here View::share('user', User::all()); });
ミドルウェアの使用
Laravel 5 では、ミドルウェアがより強力なフィルター メカニズムを提供します。フィルターと同様に、グローバル データはミドルウェアのハンドル メソッド内で設定できます。
Route::group(['middleware' => 'SomeMiddleware'], function(){ // routes }); class SomeMiddleware { public function handle($request) { \View::share('user', auth()->user()); } }
View Composer の使用
View Composer を使用すると、特定のデータをビューにバインドできます。グローバル データは、View Composer サービス プロバイダーを使用してすべてのビューにバインドできます。
// Service Provider namespace App\Providers; use Illuminate\Support\ServiceProvider; class ViewComposerServiceProvider extends ServiceProvider { public function boot() { view()->composer("*", "App\Http\ViewComposers\TestViewComposer"); } } // View Composer namespace App\Http\ViewComposers; use Illuminate\Contracts\View\View; class TestViewComposer { public function compose(View $view) { $view->with('ViewComposerTestVariable', "Calling with View Composer Provider"); } }
結論
この記事では、Laravel 5 のすべてのビューにデータを渡す複数の方法を提供します。これにより、開発者は一貫したデータ コンテキストを維持し、コードの再利用性を高めることができます。どの方法を選択するかは、特定の要件と好みによって異なります。
以上がLaravel 5 のすべてのビューでデータにグローバルにアクセスできるようにするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。