LaravelでLivewireモーダルを使用する方法


  1. 必要なパッケージのインストール: まず、LaravelプロジェクトにLivewireとAlpine.jsのパッケージをインストールします。ターミナルで以下のコマンドを実行してください。
composer require livewire/livewire
npm install alpinejs
  1. Livewireコンポーネントの作成: Livewireを使用してモーダルを作成するために、Livewireコンポーネントを作成します。以下は、例としてModalComponentというコンポーネントを作成する方法です。
php artisan make:livewire ModalComponent
  1. モーダルの表示と非表示の管理: Livewireコンポーネント内で、モーダルの表示と非表示を管理するためのプロパティとメソッドを追加します。以下は、例としてshowModalプロパティとopenModalメソッドを追加する方法です。
<?php
namespace App\Http\Livewire;
use Livewire\Component;
class ModalComponent extends Component
{
    public $showModal = false;
    public function openModal()
    {
        $this->showModal = true;
    }
    public function closeModal()
    {
        $this->showModal = false;
    }
    public function render()
    {
        return view('livewire.modal-component');
    }
}
  1. モーダルのビューの作成: Livewireコンポーネントのビューを作成し、モーダルの表示を実装します。以下は、例としてmodal-component.blade.phpというビューファイルを作成する方法です。
<div>
    <button wire:click="openModal">モーダルを開く</button>
    @if($showModal)
        <div>
            <!-- モーダルのコンテンツをここに追加 -->
            <button wire:click="closeModal">閉じる</button>
        </div>
    @endif
</div>
  1. ルートとビューの設定: Livewireコンポーネントをルートとビューに関連付けます。以下は、例としてroutes/web.phpファイルとwelcome.blade.phpファイルの設定方法です。

routes/web.php:

use App\Http\Livewire\ModalComponent;
Route::get('/', function () {
    return view('welcome');
});
Route::livewire('/modal', ModalComponent::class);

welcome.blade.php:

<!DOCTYPE html>
<html>
<head>
    <!-- 必要なCSSとJavaScriptの読み込み -->
</head>
<body>
    <!-- モーダルコンポーネントの表示 -->
    @livewire('modal-component')
</body>
</html>

これで、LaravelとLivewireを使用してモーダルを実装する準備が整いました。ブラウザでアプリケーションを起動し、モーダルをクリックして表示/非表示を切り替えることができます。