-
コンポーザーを使用する方法: Laravelでは、ビューコンポーザーを使用してビューに変数を渡すことができます。グローバル変数を定義するために、AppServiceProviderなどのサービスプロバイダを作成し、コンポーザーメソッド内で変数を設定します。
まず、以下のコマンドを使用して新しいサービスプロバイダを作成します。
php artisan make:provider GlobalVariableServiceProvider
作成されたサービスプロバイダの
register
メソッド内で、以下のようにグローバル変数を定義します。<?php namespace App\Providers; use Illuminate\Support\ServiceProvider; use Illuminate\Support\Facades\View; class GlobalVariableServiceProvider extends ServiceProvider { public function register() { View::composer('*', function ($view) { $view->with('globalVariable', 'Global Value'); }); } }
上記の例では、
globalVariable
という名前のグローバル変数にGlobal Value
という値を設定しています。'*'
はすべてのビューでグローバル変数を使用できることを意味します。最後に、
config/app.php
ファイルのproviders
配列にサービスプロバイダを追加します。'providers' => [ // ... App\Providers\GlobalVariableServiceProvider::class, ],
これで、Laravel Bladeテンプレート内で
$globalVariable
変数を使用することができます。 -
ビューシェアを使用する方法: もう1つの方法は、ビューシェアを使用してグローバル変数を定義する方法です。ビューシェアを使用すると、特定のビューファイルでのみ変数を共有することができます。
以下のように、
AppServiceProvider
のboot
メソッド内でビューシェアを定義します。<?php namespace App\Providers; use Illuminate\Support\ServiceProvider; use Illuminate\Support\Facades\View; class AppServiceProvider extends ServiceProvider { public function boot() { View::share('globalVariable', 'Global Value'); } }
上記の例では、
globalVariable
という名前のグローバル変数にGlobal Value
という値を設定しています。config/app.php
ファイルのproviders
配列にAppServiceProvider
を追加することを忘れないでください。'providers' => [ // ... App\Providers\AppServiceProvider::class, ],
これで、ビューファイル内で
$globalVariable
変数を使用することができます。
以上がLaravel Bladeでグローバル変数を定義する方法です。いずれの方法も、テンプレートのどの場所からでも変数にアクセスすることができます。