【CakePHP】テキストデータの改行を反映させるには

データベースからテキストデータを引っ張り出してきて、ビューで表示させるには
このように書くことが多いと思います。

・コントローラの場合

public function index() 
{ $this->set('items', $this->Item->find('all')); }

・ビューの場合

<?php foreach ($items as $item): ?>
  <?php echo $item['Item']['comment']; ?>
<?php endforeach; ?>

この場合'comment’というフィールドのデータが表示されるわけですが
データ中の改行が反映されないという問題点があります。

これを解決するにはモデルに
afterfind()というコールバック関数を定義します。

public function afterFind($results, $primary = false) 
{ $num_record = count($results); for($i = 0; $i< $num_record; $i++){ $results[$i]['Item']['comment'] = str_replace("\n", "</br>", $results[$i]['Item']['comment']); } return $results; }

afterfind()はfindの後で勝手に呼び出される関数で、
findした結果を配列$reslutsで受け取ります。

各レコードの"comment"フィールドの値にたいして、
改行文字を</br>で置き換える処理を行えば最終的に表示される内容を
改行することが出来ます。