CakePHPのtextareaの最初の改行コードがなくなる!

| コメント(0) | トラックバック(0)
--------------
\n
\n
テキストエリア内容
--------------
のデータがあった場合
$form->input('Model.field', array('type' => 'textarea'));
で表示した場合、最初の改行コードがない状態でフォームに表示されます。
(下記のように2つある改行が1つになっています)
実際、バグではなくてブラウザの仕様で最初の改行は表示しない為です。

こんな風に改行とインデントつけながらhtml書いていた場合、初めの改行を読み込んで表示されると1段下がった状態で内容が表示されると困りますので・・・
CakePHPの場合 (cake/libs/view/helpers/html.php)
''
のように改行を入れてから内容を表示していないので、内容を展開する前に改行を挿入してから展開する必要があります。
そこで、 (cake/libs/view/helpers/form.php)
		return $this->output(sprintf(
			$this->Html->tags['textarea'],
			$options['name'],
			$this->_parseAttributes($options, array('type', 'name'), null, ' '),
			PHP_EOL. $value
		));
の$valueの前に改行コード「PHP_EOL」を足しました。
バージョンは1.2.6です。

トラックバック(0)

このブログ記事を参照しているブログ一覧: CakePHPのtextareaの最初の改行コードがなくなる!

このブログ記事に対するトラックバックURL: http://www.okushin.co.jp/mt_co_jp/mt-tb.cgi/77

コメントする