登録日:
2025-03-09
最終更新日:
2025-03-19
Laravel で全ページ共通データをフロント側に渡す方法
Laravel で全ページに共通データをフロントエンドへ渡す方法を紹介します。
ビューコンポーザー (View Composer) の作成
特定のビューがレンダリングされる際に、データを自動的に渡すことができます。
設定手順
app\Http\ViewComposers\ExampleComposer.php を追加する。
<?php
namespace App\Http\ViewComposers;
use Illuminate\View\View;
/**
* Class ExampleComposer
* @package App\Http\ViewComposers
*/
class ExampleComposer
{
/**
* Bind data to the view.
* @param View $view
* @return void
*/
public function compose(View $view)
{
$view->with([
'globalDataA' => 'example',
]);
}
}
サービスプロバイダファイルの作成
以下のコマンドを実行し、サービスプロバイダファイルを作成します。
php artisan make:provider ViewComposerServiceProvider
app\Providers\ViewComposerServiceProvider.php
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use View;
class ViewComposerServiceProvider extends ServiceProvider
{
/**
* Register services.
*/
public function register(): void
{
//
}
/**
* Bootstrap services.
*/
public function boot(): void
{
View::composers([
// 全てのviewに共通データを渡す。
\App\Http\ViewComposers\ExampleComposer::class => '*',
// 例:resources\views\example\index.blade.phpに返したい場合
// \App\Http\ViewComposers\ExampleComposer::class => 'example.index',
// 例:resources\views\example\配下の全てのviewに返したい場合
// \App\Http\ViewComposers\ExampleComposer::class => 'example.*',
]);
}
}
app.php へ SeriviceProvider の登録
app.php に作成した、サービスプロバイダを追加します。
'providers' => ServiceProvider::defaultProviders()->merge([
…(略)
// View Composer
App\Providers\ViewComposerServiceProvider::class,
フロントで共通データを表示
<div>
<h6>{{ $globalDataA }}</h6>
</div>
※ @include するファイルでも取得可能です。