Livewire

Livewire @js ディレクティブ とは?

以下のソースは、ボタンを押すと、photo_pathプロパティ をコンソールログに出力するというものです。 ボタンを押すと、コンソールログには null が出力されます。 scriptタグ は wire:ignore 的な扱いになっているので(私的に)、photo_pathプロパティ を更新しても、初期状態の null が出力されます。そうすると、scriptタグ内の @jsディレクティブ は初期状態の値しか取得できないのかな?と思いました。 scriptタグ に id属性 を与えると反応するようになりますが、これも少し違う気がします。。。 ↑addEventListener なので、2行出力されます。 以下のように、onClickハンドラ に書けば最新の情報を出力することはできました。 scriptタグ内 で 最新の @js を扱うにはどうすればいいのか?ここは今後調査していこうと思います。

Livewire JavaScript で emitSelf、emitUp のやり方

wire:click で自身のアクションメソッドを実行できます。 ↑上は↓下のように @this.debug と書くことができます。 JavaScript で自身へイベントを送るには「@this.emitSelf」と書きます。 JavaScript で親へイベントを送るには「@this.emitUp」と書きます。

Livewire @thisディレクティブ

@thisディレクティブの定義は↓こちら。vendor/livewire/livewire/src/LivewireBladeDirectives.php 今まで自身のアクションメソッドを呼び出すときは、↓下のように、findを使って呼び出していましたが @this だけでいけちゃいます↓↓↓ P.S.「$this->id」を「$_instance->id」に置き換えることができることを確認しました。

Livewire でファイルを複数アップするには?wire:key

Laravel と Livewire をインストールして、複数ファイルをアップロードするサンプルプログラムを作成する手順。 プロジェクト名(uploa2)を決めて以下のコマンドを実行します。 インストール時にプロジェクト名のディレクトリが作成されます。 インストールの最後に sudo でパスワードの入力を求められます。 ↓下のメッセージが表示されてインストールは終わります。 sail のエイリアスを定義します。 Laravel のインストールはここまで。 「sail up」でコンテナを起動します。 ララベルのトップディレクトリで、Livewireパッケージ をインストールします。 次のコマンドを実行して、uploadコンポーネント を生成します。 次の 2つ のファイルが生成されます。 ※因みに、renderメソッド を定義しなくても livewire.upload は呼び出されます。 生成された uploadコンポーネント のクラスとビューを次のように置き換えます。 app/Http/Livewire/Upload.php ↑ファイルアップロードフォームを作成る場合、WithFileUploadsトレイト を使います。 resources/views/livewire/upload.blade.php formsコンポーネント のクラスとビューを作成します。 app/Http/Livewire/Forms.php resources/views/livewire/forms.blade.php ↑ここポイントです。for のループで同じ livewireタグ を生成する場合、 wire:key属性 に $i を指定します。 LiveRelationトレイト を作成します。 public/liveext.js を作成します。 resources/views/index.blade.phpファイル を作成します。 routes/web.php に Livewireコンポーネント …

Livewire でファイルを複数アップするには?wire:key Read More »

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 »

Scroll to Top