CakePHPのtextareaの最初の改行コードがなくなる!
--------------
\n
\n
テキストエリア内容
--------------
のデータがあった場合
(下記のように2つある改行が1つになっています)
\n
\n
テキストエリア内容
--------------
のデータがあった場合
$form->input('Model.field', array('type' => 'textarea'));
で表示した場合、最初の改行コードがない状態でフォームに表示されます。(下記のように2つある改行が1つになっています)
実際、バグではなくてブラウザの仕様で最初の改行は表示しない為です。
CakePHPの場合 (cake/libs/view/helpers/html.php)
そこで、 (cake/libs/view/helpers/form.php)
バージョンは1.2.6です。
こんな風に改行とインデントつけながら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

コメントする