PHP

PHPPHP
Laravel

Laravelで複数レコードを一括で更新する

Laravelで1度のQueryで複数のレコードを一括で更新したい時は,upserts()メソッドを使います。 Flight::upsert([ , ], , ); 第1引数に配列 第2引数に検索キー 第3引数に変更したいカラム を指定しま...
Laravel

Laravelのリレーション先のモデルを取得するときは基本的にはwithを使え

Laravelでリレーション先のモデルを結合して受け取る方法は3種類ありますが、リレーション先のモデルを効率的に取得するために、withメソッドを使用することが推奨されています。 なぜでしょうか? withメソッドを使ってアクセスする wi...
Laravel

laravel Eloquent updateOrCreate()でmodelを更新する

LaravelのupdateOrCreateメソッドは、指定した条件に基づいてデータベース内のレコードを更新するか、存在しない場合は新しいレコードを作成します。 このメソッドは非常に便利で、以下のようなシナリオで使用することができます。 既...
Laravel

laravelのcollectionでfilterを使った時はかならずvalues()を呼ぶ

laravelのcollectionでfilterを使って絞り込んだときは、必ずvalues()を呼びましょう。 こんな感じに。 $new = array.filter(function(value){ return (何か条件式); })...
Laravel

Eloquentの便利機能

Eloquentとは Laravel Eloquentは、PHP構文を使用してデータベースとやりとりすることができるORM(Object-Relational Mapping)です。データベースとの作業に対してシンプルなAPIを提供し、開発...
javascript

配列のキーが歯抜けだとlengthがundefindになる

axiosで受け取ったレスポンスのサイズを見るためにlengthプロパティーを参照したら何故かundefindになってしまいました。 理由 バックエンド側のレスポンスで { 0: { id: 1 }, 3: { id: 3 }, 5: { ...
Laravel

[Laravel]更新されたフィールドがあるかどうか判定する

編集フォームで、変更があった場合だけ何かするというような処理はありがちだと思いますが、そういったときに便利な機能があります。 Model::isDirty() メソッド を使うと、変更があったかどうかのBool値を返してくれます。引数にフィ...
Laravel

LaravelAdminで複数カラムのUniqueValidationを行う方法

LaravelAdminで複数カラムのUniqueValidationを行う方法がわからなかったので調査しました。 前提 環境は Laravel8 ユーザーにタグを付与する場合を例にします。 テーブル構成はこんな感じ users tags ...
Laravel

laravel8のUnitTestでfackerが使えない

UnitTestとFactoryを作成してテストを実行してみたら Unknown formatter "関数名" faker というエラーになってFakerが使えなかった。作成時に利用したコマンドはこんな感じ artisan make:te...
Laravel

[Laravel]孫の集計を行う

Laravelで孫テーブルの集計をしたい場合は hasManyThrough を使ってリレーションを定義した上で、hasManyThroughで定義したリレーションに対してwithCount()などの集計関数を使う。 具体的にはこんな感じ ...
Laravel

[Laravel]WebAPIの内容がソートされていない

LaravelでCollectionでソートしたデータをJSONで返却して、JavaScriptで表示させたが、なぜかソートされていない。 理由 JSONオブジェクトは連想配列は順番は保証されずキー名基準になるため無意味。 Collecti...
Laravel

Laravelのモデルを共通化する(Scope)

Queryの共通化 例えばこんなQueryがあったとして $users = \App\User::where('age', '>=', 20) ->whereDate('created_at', today()) ->get(); mode...
Laravel

model::update()で更新するとObserverでキャッチできない

LaravelにObserverという機能があって、モデルが作成されたり変更された時のイベントコールバックを登録することができるのですが、なぜかUpdate時のイベントがキャッチできない問題に遭遇しました。 原因 単一モデルじゃないとキャッ...
Laravel

observerをキャンセルする

Laravelにはobserver機能があって、Modelに書き込みが会った時のイベントをキャッチして何かやらせるということができます。CakePHPで言うところのafterSave()みたいなものですね。 Observer自体は公式マニュ...
Laravel

[Laravel Mix] 型定義ファイル(.d.ts)を作ったら”TypeScript emitted no output”エラーになる

環境 Laravel-mix 6 Vue 2.7 型定義ファイルがないモジュールがあったので、@typeフォルダを作って型定義ファイルを入れてビルドしてみたが・・・ Module build failed (from ./node_modu...
Laravel

Laravel adminでユーザーのパスワードを管理する

Laravel Adminを使ってユーザーの情報を管理したい場合があると思います。ただ、FormやModelが通常とは違いAdminで独自なので、前処理、後処理をどうやってけけばいいのか悩みますね。結論から言うとこんな感じにすると良いかと思...
Laravel

Uncaught TypeError: Vue.use is not a function

Laravel mix + vue で開発していると Uncaught TypeError: Vue.use is not a function が、出たり出なかったりすることがあるのだが、ようやく意味がわかった。 ビルド途中でリロードする...
Laravel

Laravel Mix+Vue2をTypeScriptに対応させようとしてハマった件

LaravelMix+Vue2をTypeScriptに対応させるべく色々やっていたのだが色々はまりましたので、その時の忘備録です。こんなののために1日潰れました。 いまさらVue2にするとかはないと思いますがあまり情報がなかったので残してお...
CakePHP

[PHP]ゴミがレンダリングされる

CakeなりLaravelなりで、下手にコンソール出力するデバッグプリントを使って消し忘れるとめんどくさいことになります。 フレームワークだと、いろんなファイルをを経由して呼ばれるので、消し忘れるとどこでやってるかわからなくなります。フレー...
CakePHP3.x

[CakePHP]patchEntity()で渡したデータがNULLになる件

CakeでpatchEntity()で渡したカラムの中身がなぜかNULLになってしまう問題が発生。 原因は、渡したデータの変数の型やフォーマットが、DBのカラムの型と一致していなかったり、変換できない場合、NULLになるというものでした。 ...