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']; } } }