【CakePHP3】解説!Model配下やbootstrap.php内等、シーン別で使える万能デバッグコード一覧

masyus-work-eyecatch-cakephp3

CakePHP3でよく使うデバッグコードといえばpr()や$this->log()。だが、デバッグしたい箇所によってはこれが使えない場合もある。今回は筆者の経験上

「こういう時はこのデバッグコードを使うのが鉄板!」

と思われるデバッグコードを紹介する。検証したCakePHPのバージョンは3.6.13。

もっと見る

【CakePHP3】Migrationでrename tableする方法

masyus-work-eyecatch-cakephp3

先日CakePHP3でrename table文を発行したいニーズがあり、Migrationファイルでどう書けば良いかを調べたのでメモがてら残しておく。Phinxに定義されているメソッドを把握する必要があるため、Cakeの公式ドキュメントから具体的な解説を辿るのに少々時間がかかった。検証したCakePHPのバージョンは3.6.13、データベースはMySQL。

もっと見る

【CakePHP3】TableクラスのhasMany定義に、conditionsで最大値を持つレコードのみを抽出させる方法

masyus-work-eyecatch-cakephp3

Tableクラスに定義可能なhasManyアソシエーションは、conditionsにて抽出条件を書くことが可能だ。普通はjoin先テーブルの特定のカラムの値で絞り込むとか単純なことをさせるのに使うが、たまたま

hasMany()でjoinさせたいテーブルの中で、特定のカラムが最大値のレコードだけをデフォルトで抽出したい

というニーズがあったので、これをどうにかしてhasMany()を定義する際に書けないかと思い調べてみたら方法があったのでシェアする。検証したCakePHPのバージョンは3.6.13。

もっと見る

【CakePHP3】toArray()とtoList()の挙動の違い

Bake-with-CakePHP Logo

CakePHP3でResultSetやCollectionにしたデータを配列に変換する際、基本的にはtoArray()を使うことが多いと思うが、時としてtoList()を使っている箇所もある。果たして両者の違いは何なのか調べてみた。検証したCakePHPのバージョンは3.6.13。

もっと見る

【CakePHP3】Tableへクエリーを投げた後に、特定のcolumn情報を[key => value]の配列で返す方法

Bake-with-CakePHP Logo

CakePHP2を嗜んでいる人だとよく間違いやすい実装の1つが今回のお題。

CakePHP3でもつい

find(‘list’)とselect([‘id”, ‘name’])等でやれば [key => value] で返せるだろう

って思ってたら、primary keyであるidはkeyとして返してくれるが、valueはselect()の指定では返してくれない。というわけで、どう実装をすれば良かったかをメモがてら残しておく。検証したCakePHPのバージョンは3.6.13。

もっと見る