model

CakePHP

[CakePHP]IN句を使う場合はwhere()を使うな!whereInList()を使え

通常、IN句を使って指定のIDのレコード一覧を取ってくるには$this->Users->find('all')->whre();とすればよいのですが、$userListが空の場合エラーになってしまいます。従来は$userListの存在チェッ...
CakePHP

[CakePHP4]ModelをcontainしたらCannot convert value of type array to string になる場合

CakePHP4であるモデルをcontain()で追加したら、下記のエラーになりました Cannot convert value of type array to string 原因 テーブルに複合PK使っていました。 その場合、接続元...
CakePHP3.x

[CakePHP4]どこでもloadModel~

コントローラー以外でもModelを使いたい場合ってありますよね? え?使うなって。でもコンソールとかコンポーネントとかで使いたい場合あるでしょう? そんなときの方法です。 環境 CakePHP4(たぶんCakephp3も同じ) 方法 tra...
CakePHP3.x

[CakePHP3.x]cakephp3 タイムスタンプが入らない

カラムにcreatedやmodifiedがあると、自動的にタイムスタンプが入る機能があります。 当初、該当のテーブルには不要だったのですが、後から入れることになったので、カラムに追加して保存処理をやらせてみたのですが、なぜかタイムスタンプが...
CakePHP3.x

[CakePHP3.x]CakePHP2にあったafterFind()やvirtualFiledsはどこに行った?

CakePHP2ではモデルのafterFind()メソッドで検索結果の整形を行うことができました。 なんですが、CakePHP3ではなくなってしまったようです。 (参考)afterFind イベントやバーチャルフィールドはありません
CakePHP3.x

[CakePHP3]Modelがモデル名?テーブル名?単数形?複数形?

CakePHP3でModelの指定方法や、find()して帰ってくるデータのフォーマットがCakePHP3依然と大きく変わりました。 めちゃくちゃ混乱します。 ちょっとまとめました。 バージョン CakePHP3.x
CakePHP3.x

[CakePHP3]Modelで後から追加したカラムだけ保存できない場合

あるモデルで、特定のカラムだけ保存できない。なんでやー。うーん。これ後から追加したやつだな。CakePHP3.x
CakePHP

同じテーブルで条件を変えて同時に取得するには

CakePHP2でHasManyでリレーションしているテーブルの最新のデータのみ取得と全件取得を同時にしたい場合どうしたらいいか…ちょっと悩みました。
CakePHP

CakePHP2 ModelのbeforeFind()の謎な仕様

Cakeの・・・というよりPHPのクラスのお決まりな書き方で、オーバーライドする場合public function beforeFilter() { parent::beforeFilter();}ていう感じで親のクラスのメソッドを呼...