CakePHPで、DBから取得した値を加工したり、Associationだけでは解決できない別データを付加したい時など、afterFind()が便利です。
しかし、findではcountなどをすることもあるので、うっかりするとFatal Errorが出てしまうことがあります。
Cannot use string offset as an array in ~.php
データの形式をきちんと確認しましょう。
public function afterFind($results) {
foreach ($results as $key => $val) {
//↓ここのis_array()が重要
//$this->User->find('count')などをやった場合、2などの数値が入るため
if (isset($results[$key]['User']) && is_array($results[$key]['User'])) {
$results[$key]['User']['name'] = $results[$key]['User']['familyname'] . $results[$key]['User']['firstname'];
}
}
}