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