LaravelLaravelのリレーション先のモデルを取得するときは基本的にはwithを使え Laravelでリレーション先のモデルを結合して受け取る方法は3種類ありますが、リレーション先のモデルを効率的に取得するために、withメソッドを使用することが推奨されています。 なぜでしょうか? withメソッドを使ってアクセスする wi...2023.11.24Laravel
Laravellaravel Eloquent updateOrCreate()でmodelを更新する LaravelのupdateOrCreateメソッドは、指定した条件に基づいてデータベース内のレコードを更新するか、存在しない場合は新しいレコードを作成します。 このメソッドは非常に便利で、以下のようなシナリオで使用することができます。 既...2023.11.21Laravel
CakePHP[CakePHP]IN句を使う場合はwhere()を使うな!whereInList()を使え 通常、IN句を使って指定のIDのレコード一覧を取ってくるには $this->Users->find('all')->whre(); とすればよいのですが、$userListが空の場合エラーになってしまいます。 従来は$userListの存在...2022.11.17CakePHPCakePHP3.xCakePHP4
CakePHP[CakePHP4]ModelをcontainしたらCannot convert value of type array to string になる場合 CakePHP4であるモデルをcontain()で追加したら、下記のエラーになりました Cannot convert value of type array to string 原因 テーブルに複合PK使っていました。 その場合、接続元のテ...2022.11.14CakePHPCakePHP4
CakePHP3.x[CakePHP4]どこでもloadModel~ コントローラー以外でもModelを使いたい場合ってありますよね? え?使うなって。でもコンソールとかコンポーネントとかで使いたい場合あるでしょう? そんなときの方法です。 環境 CakePHP4(たぶんCakephp3も同じ) 方法 tra...2021.02.28CakePHP3.xCakePHP4
CakePHP3.x[CakePHP3.x]cakephp3 タイムスタンプが入らない カラムにcreatedやmodifiedがあると、自動的にタイムスタンプが入る機能があります。 当初、該当のテーブルには不要だったのですが、後から入れることになったので、カラムに追加して保存処理をやらせてみたのですが、なぜかタイムスタンプが...2020.03.26CakePHP3.x
CakePHP3.x[CakePHP3.x]CakePHP2にあったafterFind()やvirtualFiledsはどこに行った? CakePHP2ではモデルのafterFind()メソッドで検索結果の整形を行うことができました。 なんですが、CakePHP3ではなくなってしまったようです。 (参考)afterFind イベントやバーチャルフィールドはありません2019.12.05CakePHP3.x
CakePHP3.x[CakePHP3]Modelがモデル名?テーブル名?単数形?複数形? CakePHP3でModelの指定方法や、find()して帰ってくるデータのフォーマットがCakePHP3依然と大きく変わりました。 めちゃくちゃ混乱します。 ちょっとまとめました。 バージョン CakePHP3.x2019.04.11CakePHP3.x
CakePHP3.x[CakePHP3]Modelで後から追加したカラムだけ保存できない場合 あるモデルで、特定のカラムだけ保存できない。なんでやー。 うーん。これ後から追加したやつだな。 CakePHP3.x2019.04.10CakePHP3.x
CakePHP同じテーブルで条件を変えて同時に取得するには CakePHP2でHasManyでリレーションしているテーブルの最新のデータのみ取得と全件取得を同時にしたい場合どうしたらいいか… ちょっと悩みました。2018.05.30CakePHPPHP
CakePHPCakePHP2 ModelのbeforeFind()の謎な仕様 Cakeの・・・というよりPHPのクラスのお決まりな書き方で、オーバーライドする場合 public function beforeFilter() { parent::beforeFilter(); } ていう感じで親のクラスのメソッドを呼...2018.05.29CakePHPPHP