もっさん先輩

Avatar

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 アクション、$emit、$emitSelfの動作の違いについて Read More »

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 親子のコンポーネントについて、親のプロパティを更新するには?LiveRelationトレイト編 oyako3 Read More »

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 の Livewire.find(componentId) を調査 find Read More »

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 でカレンダーを閉じるタイミングで通信していることを確認しましょう。

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

Laravel で Selenium を使ってみるには?

Laravel をインストールして Selenium を試す手順。 プロジェクト名(selenium)を決めて以下のコマンドを実行します。 インストール時にプロジェクト名のディレクトリが作成されます。 インストールの最後に sudo でパスワードの入力を求められます。 ↓下のメッセージが表示されてインストールは終わります。 sail のエイリアスを定義します。 Laravel のインストールはここまで。 「sail up」だと Ctrl+C でコンテナが止まってしまうので、「sail up -d」でコンテナを起動します。 PHP で Selenium を使うために、php-webdriver をインストールします。 Selenium は コンテナで動作するので、他にインストールするものはありません。 SeleniumTestコマンドを生成します。 生成されたファイルの中身です。app/Console/Commands/SeleniumTest.php SeleniumTestコマンドを以下のように書き換えます。app/Console/Commands/SeleniumTest.php ↑のポイントは「$driver->quit();」だと思います。quitして終わらないと、次回コマンドを実行すると固まってしまいます。 selenium を使って検索してみましょう。

Laravel で Selenium を使ってみるには? Read More »

はじめての Laravel

Laravel をインストールする手順。 プロジェクト名(helloworld)を決めて以下のコマンドを実行します。 インストール時にプロジェクト名のディレクトリが作成されます。 インストールの最後に sudo でパスワードの入力を求められます。 ↓下のメッセージが表示されてインストールは終わります。 sail のエイリアスを定義します。 Laravel のインストールはここまで。 「sail up」だと Ctrl+C でコンテナが止まってしまうので、「sail up -d」でコンテナを起動します。 ブラウザでアクセスします。 今回は、Laravel のインストールを行い、ブラウザでアクセスすることができました。 サービスの選択 MySQL ではなく ポストグレス を使用する場合には、withクエリに「with=pgsql」を与えます。 Sail で Laravelアプリケーション を作成する場合、withクエリ を使用して、アプリケーション(docker-compose.yml)を構成するサービスを選択することができます。利用可能なサービスには mysql、pgsql、mariadb、redis、memcached、meilisearch、minio、selenium、mailhog があります。サービスを指定しない場合には、デフォルト スタックの mysql、redis、meilisearch、mailhog、 selenium が設定されます。 https://laravel.com/docs/9.x#choosing-your-sail-services

はじめての Laravel Read More »

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

Laravel と Livewire をインストールして、ライブワイヤーの親子のコンポーネントを作成してみます。 プロジェクト名(wireble)を決めて以下のコマンドを実行します。 インストール時にプロジェクト名のディレクトリが作成されます。 インストールの最後に sudo でパスワードの入力を求められます。 ↓下のメッセージが表示されてインストールは終わります。 sail のエイリアスを定義します。 Laravel のインストールはここまで。 「sail up」でコンテナを起動します。 ララベルのトップディレクトリで、Livewireパッケージ をインストールします。 ライブワイヤーをテストするビューを作成します。resources/views/livewire.blade.php routes/web.php にルートを定義します。 これでブラウザでアクセスできるようになりました。 データ転送オブジェクトを作成します。。app/Http/Livewire/Settings.php ライブワイヤーの親コンポーネントを作成します。app/Http/Livewire/ParentComponent.php イベントをキャッチするには「protected $listeners」に定義します。 注目するポイントは33行目の「:settings=”$settings”」です。モデルではなくオブジェクトを渡しているところです。 ライブワイヤーの子コンポーネントを作成します。app/Http/Livewire/ChildComponent.php 親にイベントを送るには「emit()->up()」を使います。 ブラウザでアクセスしてみましょう。 キーボードから子コンポーネントのテキストボックスに何か入力すると、クリアボタンの下の文字(子コンポーネント)と親コンポーネントの文字が変わります。子コンポーネントからイベントを発行して、親コンポーネントの Settings を更新することができました。 ↑当初は子コンポーネントでオブジェクトを変更したら、イベントを発行しなくても親オブジェクトの値も変更されるのかなぁ?と思って確認してみたという感じです。 今回、子コンポーネントの dehydrateフック でイベントを発行しました。当初は updatedフック でイベントを発行していました。テキストボックスに値を入力した場合には、updatedフック が呼び出されますが、クリアボタンを押してプロパティを書き換えた場合には、updatedフック は呼び出されません。dehydrateフック でイベントを発行しない場合は、updateフック と clickメソッド でイベント発行しなくてはなりません。

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

Fomantic-UI でモーダルダイアログをOKボタンで閉じると、右のマージンが 16px づつ削られる

Fomatic-UI を使ってモーダルダイヤログを表示している。確認メッセージを表示後に「OK」ボタンを押してモダールダイアログを閉じることができるが、その操作を繰り返していると BODY の右のマージンが増えていき、画面が狭くなる。 ひとまず、モーダルダイアログが非表示になるタイミングで、マージンライトを消すことで対応します。

Fomantic-UI でモーダルダイアログをOKボタンで閉じると、右のマージンが 16px づつ削られる Read More »

Scroll to Top