
CakePHPで独自のSQLを使うと、CakePHPの通常出力と違ったデータが出力されます。
CakePHPではテーブル名を小文字複数形(posts)で作っておき、モデルやコントローラーでテーブルを利用するときは初めが大文字、2文字目以降は小文字、単語は単数形で扱うようになっています。
CakePHPモデルによる出力データは [Post]というキーですが、独自のSQLだと「posts」というキーになってしまいます。
両方が混在するとViewでデータを出力するとき面倒なので、統一しておいた方が良いですね。
テーブル名にエイリアスを使えば簡単に実現できます。
0 1 2 |
SELECT * FROM `posts` as `Post` |
独自のSQL(エイリアスを使わない場合)
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
Array ( [0] => Array ( [posts] => Array ( [id] => 1 [name] => あああ ) ) [1] => Array ( [posts] => Array ( [id] => 2 [name] => いいい ) ) ) |
独自のSQL(エイリアスを使った場合)
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
Array ( [0] => Array ( [Post] => Array ( [id] => 1 [name] => あああ ) ) [1] => Array ( [Post] => Array ( [id] => 2 [name] => いいい ) ) ) |
このようにエイリアスをつけるだけで、デフォルトのCakePHPと同じ形でデータが出力され、幸せになれます。