Laravel

Livewire ラジオボタンのサンプル radio

Laravel と Livewire をインストールし、ラジオボタンのサンプルプログラムを動かす手順。 プロジェクト名(radio)を決めて以下のコマンドを実行します。 インストール時にプロジェクト名のディレクトリが作成されます。 インストールの最後に sudo でパスワードの入力を求められます。 ↓下のメッセージが表示されてインストールは終わります。 sail のエイリアスを定義します。 Laravel のインストールはここまで。 「sail up」でコンテナを起動します。 ララベルのトップディレクトリで、Livewireパッケージ をインストールします。 次のコマンドを実行して、radioコンポーネント を生成します。 次の 2つ のファイルが生成されます。 ※因みに、renderメソッド を定義しなくても livewire.radio は呼び出されます。 生成された Radioコンポーネント のクラスとビューを次のように置き換えます。 app/Http/Livewire/Radio.php resources/views/livewire/radio.blade.php ラジオボタンコンポーネントを配置するビューを作成します。resources/views/index.blade.php routes/web.php にルートを追加します。 ブラウザでアクセスしてみましょう。

Livewire アクションパラメーターに型ヒントを与えて、モデルで受け取るには?

Laravel と Livewire をインストールする。ブレード側でアクションを呼び出し、コントローラー側のアクションではモデル(クラス)で受け取る手順。 プロジェクト名(rating2)を決めて以下のコマンドを実行します。 インストール時にプロジェクト名のディレクトリが作成されます。 インストールの最後に sudo でパスワードの入力を求められます。 ↓下のメッセージが表示されてインストールは終わります。 sail のエイリアスを定義します。 Laravel のインストールはここまで。 「sail up」でコンテナを起動します。 ララベルのトップディレクトリで、Livewireパッケージ をインストールします。 次のコマンドを実行して、ratingコンポーネント を生成します。 次の 2つ のファイルが生成されます。 ※因みに、renderメソッド を定義しなくても livewire.rating は呼び出されます。 生成された Ratingコンポーネント のクラスとビューを次のように置き換えます。 app/Http/Livewire/Rating.php ↑上の「public function update(LiveData $data)」のアクションメソッドは大注目です。ブレード側で配列で渡した値を LiveDataクラス で受け取っています。 resources/views/livewire/rating.blade.php ↑上のポイントは「@this.emitSelf(‘update’,Livewire.data())」です。ここでアクションの updateメソッド に渡しているのは、クラスでは無く配列です。 LiveRelationトレイト を作成します。 public/liveext.js を作成します。 resources/views/index.blade.php ファイル を作成します。 routes/web.php に Livewireコンポーネント のルートを追加します。 ブラウザで確認します。 イベント、アクションボタンを押したときに、updateメソッド が呼び出されます。updateメソッドで …

Livewire アクションパラメーターに型ヒントを与えて、モデルで受け取るには? Read More »

Livewire で Fomantic-UI の評価(Rating)を使うには?パート2

Laravel と Livewire をインストールして、Fomantic-UI の評価(Rating)を使う手順。 プロジェクト名(rating2)を決めて以下のコマンドを実行します。 インストール時にプロジェクト名のディレクトリが作成されます。 インストールの最後に sudo でパスワードの入力を求められます。 ↓下のメッセージが表示されてインストールは終わります。 sail のエイリアスを定義します。 Laravel のインストールはここまで。 「sail up」でコンテナを起動します。 ララベルのトップディレクトリで、Livewireパッケージ をインストールします。 次のコマンドを実行して、ratingコンポーネント を生成します。 次の 2つ のファイルが生成されます。 ※因みに、renderメソッド を定義しなくても livewire.rating は呼び出されます。 生成された Ratingコンポーネント のクラスとビューを次のように置き換えます。 app/Http/Livewire/Rating.php resources/views/livewire/rating.blade.php ポイントは「wire:ignore」と「@this.set()」です。setの第3パラメータは defer です。「{{ $this->id }}」の部分は当初は ID属性 にしていましたが、うまくいかないパターンがあり、クラスに含めるようにしました。 LiveRelationトレイト を作成します。 public/liveext.js を作成します。 resources/views/index.blade.php ファイル を作成します。 routes/web.php に Livewireコンポーネント のルートを追加します ブラウザで確認します。 tail で onRate(ユーザーが評価を選択した後)のタイミングで通信していることを確認しましょう。

Livewire で Fomantic-UI の評価(Rating)を使うには?wire:ignore編

Laravel と Livewire をインストールして、Fomantic-UI の評価(Rating)を使う手順。 プロジェクト名(rating)を決めて以下のコマンドを実行します。 インストール時にプロジェクト名のディレクトリが作成されます。 インストールの最後に sudo でパスワードの入力を求められます。 ↓下のメッセージが表示されてインストールは終わります。 sail のエイリアスを定義します。 Laravel のインストールはここまで。 「sail up」でコンテナを起動します。 ララベルのトップディレクトリで、Livewireパッケージ をインストールします。 次のコマンドを実行して、ratingコンポーネント を生成します。 次の 2つ のファイルが生成されます。 ※因みに、renderメソッド を定義しなくても livewire.rating は呼び出されます。 生成された ratingコンポーネント のクラスとビューを次のように置き換えます。 app/Http/Livewire/Rating.php resources/views/livewire/rating.blade.php には↓下の2つのやり方があります。 ① @this.set() で設定する方法 ポイントは「wire:ignore」と「@this.set()」と「Livewire.on(‘set-rating’,…)」です。↓下のプロパティに設定する方法もありますが、第3パラメーターで defer が設定できるので set が良いと思います。Livewire.on ではアクションメソッドで送信された値を設定しています。 ② @this.プロパティ に設定する方法 ポイントは「wire:ignore」と「@this.プロパティ=value」と「Livewire.on(‘set-rating’,…)」です。 resources/views/index.blade.php ファイル を作成します。 routes/web.php に Livewireコンポーネント のルートを追加します ブラウザで確認します。 …

Livewire で Fomantic-UI の評価(Rating)を使うには?wire:ignore編 Read More »

Livewire 親子のコンポーネントについて、親のプロパティを更新するには?LiveRelationトレイト編2 oyako4

Laravel と Livewire をインストールして、LiveRelationトレイトを使う手順。 プロジェクト名(oyako4)を決めて以下のコマンドを実行します。 インストール時にプロジェクト名のディレクトリが作成されます。 インストールの最後に sudo でパスワードの入力を求められます。 ↓下のメッセージが表示されてインストールは終わります。 sail のエイリアスを定義します。 Laravel のインストールはここまで。 「sail up」でコンテナを起動します。 ララベルのトップディレクトリで、Livewireパッケージ をインストールします。 Livewire のクラスとビューを作成するため、ディレクトリを作成します。 今回のメイン。LiveRelationトレイト を作成します。 ライブワイヤーの親コンポーネントを作成します。app/Http/Livewire/Counter.php ↑「use LiveRelation;」でトレイトを使います。 ライブワイヤーの親コンポーネントのビューを作成します。resources/views/livewire/counter.blade.php ↑のポイントは2行目の「bind=”count2:count”」です。ここで 親コンポーネントの count2プロパティ と 子コンポーネントの countプロパティ を紐づけています。 ライブワイヤーの子コンポーネントを作成します。app/Http/Livewire/Child.php ↑「use LiveRelation;」でトレイトを使います。 ライブワイヤーの子コンポーネントのビューを作成します。resources/views/livewire/child.blade.php ↓下は旧書き方です。@this.increment で Livewire.data() を渡しています。 ↑のポイントは2行目の「bind=”count”」です。ここで 子コンポーネントのcountプロパティ と 孫コンポーネントのcountプロパティ を紐づけています。 ライブワイヤーの孫コンポーネントを作成します。app/Http/Livewire/GrandChild.php ↑「use LiveRelation;」でトレイトを使います。 ライブワイヤーの孫コンポーネントのビューを作成します。resources/views/livewire/grand-child.blade.php ↑孫コンポーネントはプロパティの紐づけはしません。 public/liveext.js を作成します。 resources/views/index.blade.php を作成します。 …

Livewire 親子のコンポーネントについて、親のプロパティを更新するには?LiveRelationトレイト編2 oyako4 Read More »

Livewire JavaScriptで全てのコンポーネントのプロパティを取得するには?

「ページ上の全ての Livewire コンポーネントを取得する」には Livewire.all() を使います。 以下のようにすればコンポーネントのプロパティの値を取得することができますが、この component はどうも Proxy となっていて生のコンポーネントにアクセスしているわけではないみたいです。 生のコンポーネントにアクセスするには __instance を使います。 生のコンポーネントを使えば、id にアクセスすることや、data、childIds、name にもアクセスすることができます。 そして、今回のテーマ「JavaScriptで全てのコンポーネントのプロパティを取得するには?」は以下の Livewire.data関数 になります。 public/liveext.js resources/views/index.blade.php PHP側 で他のコンポーネントの値を参照する場合には、全てのコンポーネントのプロパティを Livewire.data() で送って参照してみようかなと思いました。

Livewire アクション、$emit、$emitSelfの動作の違いについて

Laravel と Livewire をインストールして、アクション、$emit、$emitSelf の動作の違いについて確認する手順。 プロジェクト名(liveevent2)を決めて以下のコマンドを実行します。 インストール時にプロジェクト名のディレクトリが作成されます。 インストールの最後に sudo でパスワードの入力を求められます。 ↓下のメッセージが表示されてインストールは終わります。 sail のエイリアスを定義します。 Laravel のインストールはここまで。 「sail up」でコンテナを起動します。 ララベルのトップディレクトリで、Livewireパッケージ をインストールします。 次のコマンドを実行して、eventコンポーネント を生成します。 ライブワイヤーの親コンポーネントを作成します。app/Http/Livewire/Event.php resources/views/index.blade.php を作成します。 routes/web.php にルートを定義します。 ブラウザでアクセスして、動作の違いを確認してみましょう。

Livewire 親子のコンポーネントについて、親のプロパティを更新するには?LiveRelationトレイト編 oyako3

Laravel と Livewire をインストールして、LiveRelationトレイトを使う手順。 プロジェクト名(oyako3)を決めて以下のコマンドを実行します。 インストール時にプロジェクト名のディレクトリが作成されます。 インストールの最後に sudo でパスワードの入力を求められます。 ↓下のメッセージが表示されてインストールは終わります。 sail のエイリアスを定義します。 Laravel のインストールはここまで。 「sail up」でコンテナを起動します。 ララベルのトップディレクトリで、Livewireパッケージ をインストールします。 Livewire のクラスとビューを作成するため、ディレクトリを作成します。 今回のメイン。LiveRelationトレイト を作成します。 ライブワイヤーの親コンポーネントを作成します。app/Http/Livewire/Counter.php ↑「use LiveRelation;」でトレイトを使います。 ライブワイヤーの親コンポーネントのビューを作成します。resources/views/livewire/counter.blade.php ↑のポイントは2行目の「bind=”count2:count”」です。ここで 親コンポーネントのcount2プロパティ と 子コンポーネントのcountプロパティ を紐づけています。 ライブワイヤーの子コンポーネントを作成します。app/Http/Livewire/Child.php ↑「use LiveRelation;」でトレイトを使います。 ライブワイヤーの子コンポーネントのビューを作成します。resources/views/livewire/child.blade.php ↑のポイントは2行目の「bind=”count”」です。ここで 子コンポーネントのcountプロパティ と 孫コンポーネントのcountプロパティ を紐づけています。 ライブワイヤーの孫コンポーネントを作成します。app/Http/Livewire/GrandChild.php ↑「use LiveRelation;」でトレイトを使います。 ライブワイヤーの孫コンポーネントのビューを作成します。resources/views/livewire/grand-child.blade.php resources/views/index.blade.php を作成します。 routes/web.php にルートを定義します。 ブラウザでアクセスしてみましょう。 孫コンポーネントのテキストボックスに何か入力すると、「子のプロパティ」と「親のCOUNT2」のプロパティを変更することができます。

Livewire の Livewire.find(componentId) を調査 find

完成系は↓これです。 Laravel と Livewire をインストールして、コンポーネントID を使って Livewire.find をする方法 プロジェクト名(find)を決めて以下のコマンドを実行します。 インストール時にプロジェクト名のディレクトリが作成されます。 インストールの最後に sudo でパスワードの入力を求められます。 ↓下のメッセージが表示されてインストールは終わります。 sail のエイリアスを定義します。 Laravel のインストールはここまで。 「sail up」でコンテナを起動します。 ララベルのトップディレクトリで、Livewireパッケージをインストールします。 次のコマンドを実行して、counterコンポーネント を生成します。 次の 2つ のファイルが生成されます。app/Http/Livewire/Counter.php resources/views/livewire/counter.blade.php ※因みに、render メソッド を定義しなくても livewire.counter は呼び出されます。 生成された counterコンポーネントのクラスを次のように置き換えます。app/Http/Livewire/Counter.php counterコンポーネント のビューを書き換えます。resources/views/livewire/counter.blade.php テンプレートファイル(index.blade.php)を作成します。resources/views/index.blade.php routes/web.php にルートを追加します。 ブラウザで確認します。 「ログ出力」ボタンを押すとブラウザログに コンポーネントID とカウントの値が表示されます。

Livewire で Fomantic-UI のカレンダーを使うには?calendar

Laravel と Livewire をインストールして、Fomantic-UI の カレンダーを使う手順。 インストール時にプロジェクト名のディレクトリが作成されます。 ↓下のメッセージが表示されてインストールは終わります。 Laravel のインストールはここまで。 次の 2つ のファイルが生成されます。 ※因みに、renderメソッド を定義しなくても livewire.calendar は呼び出されます。 app/Http/Livewire/Calendar.php resources/views/livewire/calendar.blade.php には以下の4つのやり方があります。 ① onHide で inputイベント を上げる方法 ポイントは「wire:ignore」と「document.getElementById(‘calendar’).dispatchEvent(new Event(‘input’))」です。id を指定しなければならないので↓下の方法の方が良いです。 ② wire:focusoutで $set で設定する方法 ポイントは「wire:ignore」と「wire:focusout=”$set(‘date’,$event.target.value)”」です。 ③ onFocusout で @this.set() で設定する方法 ポイントは「wire:ignore」と「@this.set(‘date’,this.value)」です。 ④ onFocusout で @this.プロパティ で設定する方法 ポイントは「wire:ignore」と「@this.プロパティ=this.value」です。 tail でカレンダーを閉じるタイミングで通信していることを確認しましょう。

Scroll to Top