Laravel あえてEager Loadingしないほうが早い場合 Laravelでリレーション先のレコードを一緒に取得したい場合。リレーション先取得のクエリが大量に発行されてしまうのを防ぐには、withメソッドを使います。 withメソッドを使うことで複数レコードの取得でも1回のクエリでリレーションが取得... 2024.09.21 LaravelPHP
Laravel [Laravel] Eloquent(QueryBuilder)で使うINDEXを強制する方法 MySQLなどのDBではIndexの有無によってパフォーマンスがかなり変わります。 Indexは自動的に最適なものが選択されるはずですが、気まぐれでおかしなIndexが利用されて動作が極端に遅くなってしまうことがあります。 そんな時はFOR... 2024.09.09 Laravel開発
Laravel LaravelでEloquentのSQLを確認する Queryビルダーで作ったSQL文を確認したいときにはtoSQL()メソッドを使います。 プレースホルダーの値も取得したい場合はgetBindings()メソッドを使います。 $query = User::where('id',1); va... 2023.12.14 Laravel
Laravel Laravelで複数レコードを一括で更新する Laravelで1度のQueryで複数のレコードを一括で更新したい時は,upserts()メソッドを使います。 Flight::upsert([ , ], , ); 第1引数に配列 第2引数に検索キー 第3引数に変更したいカラム を指定しま... 2023.12.05 Laravel
GitHub GitHub ActionsでPHPのバージョンを指定する方法 GitHub ActionsでLaravelのバックエンドをデプロイしているのですが、突然デプロイできなくなった問題に遭遇した時の忘備録です。 原因 原因は、デプロイする環境(runner)にインストールされているPHPのバージョンが変わっ... 2023.11.28 GitHub
Laravel Laravelのリレーション先のモデルを取得するときは基本的にはwithを使え Laravelでリレーション先のモデルを結合して受け取る方法は3種類ありますが、リレーション先のモデルを効率的に取得するために、withメソッドを使用することが推奨されています。 なぜでしょうか? withメソッドを使ってアクセスする wi... 2023.11.24 Laravel
Laravel laravel Eloquent updateOrCreate()でmodelを更新する LaravelのupdateOrCreateメソッドは、指定した条件に基づいてデータベース内のレコードを更新するか、存在しない場合は新しいレコードを作成します。 このメソッドは非常に便利で、以下のようなシナリオで使用することができます。 既... 2023.11.21 Laravel
Laravel Eloquentの便利機能 Eloquentとは Laravel Eloquentは、PHP構文を使用してデータベースとやりとりすることができるORM(Object-Relational Mapping)です。データベースとの作業に対してシンプルなAPIを提供し、開発... 2023.07.24 Laravel開発
開発 [Laravel]POST時の自動トリミングや空文字のNull変換をやめさせる フォームからのPOST時に空欄で入力したら勝手にNullに変換されてしまう。 また、文字列の前後の空白が削除されてしまう。 この2点を解除します。 結論としては、app/Http/Kernel.phpの下記のmiddleware登録をコメン... 2023.06.14 開発
Laravel [Laravel]更新されたフィールドがあるかどうか判定する 編集フォームで、変更があった場合だけ何かするというような処理はありがちだと思いますが、そういったときに便利な機能があります。 Model::isDirty() メソッド を使うと、変更があったかどうかのBool値を返してくれます。引数にフィ... 2023.02.21 LaravelLaravel8.x
Laravel LaravelAdminで複数カラムのUniqueValidationを行う方法 LaravelAdminで複数カラムのUniqueValidationを行う方法がわからなかったので調査しました。 前提 環境は Laravel8 ユーザーにタグを付与する場合を例にします。 テーブル構成はこんな感じ users tags ... 2023.02.02 LaravelLaravel8.x
Laravel laravel8のUnitTestでfackerが使えない UnitTestとFactoryを作成してテストを実行してみたら Unknown formatter "関数名" faker というエラーになってFakerが使えなかった。作成時に利用したコマンドはこんな感じ artisan make:te... 2023.02.02 LaravelLaravel8.xLaravel初心者講座開発
Laravel [Laravel]孫の集計を行う Laravelで孫テーブルの集計をしたい場合は hasManyThrough を使ってリレーションを定義した上で、hasManyThroughで定義したリレーションに対してwithCount()などの集計関数を使う。 具体的にはこんな感じ ... 2023.01.05 Laravel
Laravel [Laravel]WebAPIの内容がソートされていない LaravelでCollectionでソートしたデータをJSONで返却して、JavaScriptで表示させたが、なぜかソートされていない。 理由 JSONオブジェクトは連想配列は順番は保証されずキー名基準になるため無意味。 Collecti... 2022.12.27 Laravel
Laravel Laravelのモデルを共通化する(Scope) Queryの共通化 例えばこんなQueryがあったとして $users = \App\User::where('age', '>=', 20) ->whereDate('created_at', today()) ->get(); mode... 2022.12.27 LaravelLaravel8.x
Laravel model::update()で更新するとObserverでキャッチできない LaravelにObserverという機能があって、モデルが作成されたり変更された時のイベントコールバックを登録することができるのですが、なぜかUpdate時のイベントがキャッチできない問題に遭遇しました。 原因 単一モデルじゃないとキャッ... 2022.12.23 LaravelLaravel8.x開発
Laravel observerをキャンセルする Laravelにはobserver機能があって、Modelに書き込みが会った時のイベントをキャッチして何かやらせるということができます。CakePHPで言うところのafterSave()みたいなものですね。 Observer自体は公式マニュ... 2022.12.20 LaravelLaravel8.x開発
Laravel [Laravel Mix] 型定義ファイル(.d.ts)を作ったら”TypeScript emitted no output”エラーになる 環境 Laravel-mix 6 Vue 2.7 型定義ファイルがないモジュールがあったので、@typeフォルダを作って型定義ファイルを入れてビルドしてみたが・・・ Module build failed (from ./node_modu... 2022.12.13 LaravelLaravel8.xVue3
Laravel Laravel adminでユーザーのパスワードを管理する Laravel Adminを使ってユーザーの情報を管理したい場合があると思います。ただ、FormやModelが通常とは違いAdminで独自なので、前処理、後処理をどうやってけけばいいのか悩みますね。結論から言うとこんな感じにすると良いかと思... 2022.11.28 LaravelLaravel8.xLaravel初心者講座開発
Laravel Uncaught TypeError: Vue.use is not a function Laravel mix + vue で開発していると Uncaught TypeError: Vue.use is not a function が、出たり出なかったりすることがあるのだが、ようやく意味がわかった。 ビルド途中でリロードする... 2022.11.26 LaravelLaravel8.xVue3