方法1: Livewireコンポーネント内でモーダルを表示する
まず、LaravelプロジェクトでLivewireをセットアップします。Livewireのインストール方法については、公式ドキュメントを参照してください。
Livewireコンポーネントを作成し、モーダルの表示と非表示を管理するためのプロパティを追加します。例えば、以下のようなコードです。
namespace App\Http\Livewire;
use Livewire\Component;
class MyComponent extends Component
{
public $showModal = false;
public function openModal()
{
$this->showModal = true;
}
public function closeModal()
{
$this->showModal = false;
}
public function render()
{
return view('livewire.my-component');
}
}
Livewireコンポーネントのビューで、ボタンをクリックしてモーダルを開くためのメソッドを呼び出します。
<button wire:click="openModal">モーダルを開く</button>
@if($showModal)
<div class="modal">
<!-- モーダルのコンテンツをここに追加 -->
<button wire:click="closeModal">モーダルを閉じる</button>
</div>
@endif
方法2: BootstrapモーダルをLivewireコンポーネント内で使用する
Livewireコンポーネント内でBootstrapのモーダルを使用する場合は、Livewireのwire:ignore
ディレクティブを使用して、Livewireがモーダル内のHTMLを更新しないようにします。
Livewireコンポーネント内のコード例:
namespace App\Http\Livewire;
use Livewire\Component;
class MyComponent extends Component
{
public $showModal = false;
public function openModal()
{
$this->showModal = true;
}
public function closeModal()
{
$this->showModal = false;
}
public function render()
{
return view('livewire.my-component');
}
}
Livewireコンポーネントのビューで、Bootstrapのモーダルを使用します。
<button wire:click="openModal">モーダルを開く</button>
<div class="modal" tabindex="-1" role="dialog" wire:ignore>
<!-- モーダルのコンテンツをここに追加 -->
<button wire:click="closeModal">モーダルを閉じる</button>
</div>
@if($showModal)
<script>
// モーダルを表示するためのJavaScriptコードを追加
// 例: $('#myModal').modal('show');
</script>
@endif