[CakePHP]独自SQLを使うとき出力データのモデル名を大文字に変更する方法

CakePHPで独自のSQLを使うと、CakePHPの通常出力と違ったデータが出力されます。
CakePHPではテーブル名を小文字複数形(posts)で作っておき、モデルやコントローラーでテーブルを利用するときは初めが大文字、2文字目以降は小文字、単語は単数形で扱うようになっています。
CakePHPモデルによる出力データは [Post]というキーですが、独自のSQLだと「posts」というキーになってしまいます。
両方が混在するとViewでデータを出力するとき面倒なので、統一しておいた方が良いですね。
テーブル名にエイリアスを使えば簡単に実現できます。
1 |
SELECT * FROM `posts` as `Post` |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
Array ( [0] => Array ( [posts] => Array ( [id] => 1 [name] => あああ ) ) [1] => Array ( [posts] => Array ( [id] => 2 [name] => いいい ) ) ) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
Array ( [0] => Array ( [Post] => Array ( [id] => 1 [name] => あああ ) ) [1] => Array ( [Post] => Array ( [id] => 2 [name] => いいい ) ) ) |
このようにエイリアスをつけるだけで、デフォルトのCakePHPと同じ形でデータが出力され、幸せになれます。関連記事
- [CakePHP] 独自のSQL文を利用する方法
- [CakePHP] 独自のSQL文でプリペアドステートメントを使う方法
- [CakePHP] find(all)でIN句を使ってデータを抽出する方法
- [CakePHP] 別モデルでページネーションを(pagination)行う方法
- [Laravel] DBから取得したデータの中身を簡単に見る方法