June 5, 2012

FuelPHPのScaffoldと、バリデーションエラーメッセージのエスケープに関して。

2012/06/06 追記
以下に、暫定的ですが、対応策を書きました。

FuelPHPのScaffold(admin)と、バリデーションエラーメッセージのエスケープ問題の対応策。(応急処置。)
http://madroom-project.blogspot.jp/2012/06/fuelphpscaffoldadmin.html

--

以下の現象は、Ver1.2で確認しています。

oilで生成したフォームから入力してバリデーションエラーが発生すると、コントローラの
Session::set_flash('error', $val->show_errors());
に刺さりますが、同時に生成されるViewで
e((array) Session::get_flash('error')));
していて、eメソッド(fuel\core\base.phpに有ります。)でエスケープされてしまい、htmlとして出力されませんでした。

数日前にフォーラムで、同様の話に関するやり取りがされていたようです。
http://fuelphp.com/forums/topics/view/9416

フォーラムに記載されている通り
* View側を修正する
* Fuel\Core\Validationで使用される以下のコンフィグ値を調整する
'open_list'    => \Config::get('validation.open_list', '<ul>'),
'close_list'   => \Config::get('validation.close_list', '</ul>'),
'open_error'   => \Config::get('validation.open_error', '<li>'),
'close_error'  => \Config::get('validation.close_error', '</li>'),
のどちらかになりそうです。
ただ、後者だと結局preタグとかも使えないので、前者の方法が手っ取り早いかなと思いました。


No comments:

Post a Comment