Qbilinux 日記

Linux に関係することだけではなく,最近は一般的なコンピュータやガジェット関係についても記載してます.

cakephp3 での form 入力時の確認画面での入力値表示と hidden 関数

cakephp2 までは $this->Form->value() 関数を使って確認画面で値を表示できていました.

cakephp3 からは FormHelper の value() 関数はなくなったみたいですね.というか正確に言うと仕様が変わったのかな?無理矢理,$this->Form->value() で記述すると普通の書き換えが出来る form が表示されてしまうようですね.

ということで

echo $this->Form->value('value');

していた記述の代わりは,普通に

echo $this->request->data['value'];

で良いみたいですね.適宜,h() や nl2br() などは付ける形で.

あと,input で取り込んだ配列形式の変数を確認画面に hidden 関数で埋め込もうとするとエラーになりますね.time とか.

FormHelper のソースコード中をみてみると,'secure' == true 時の

if ($secure === true) {
    $this->_secure(true, $this->_secureFieldName($options['name']), (string)$options['val']);
}

な記述で,配列変数が渡ると (string)$options['val'] が配列に対するキャストになるのでエラーになるのね.これってこういう仕様なのかな?

$this->Form->hidden('time', ['secure'=>false]);

みたいにすればエラーは出なくなるようだけど,なんだか気持悪いし,その他にもこの hidden 関係で挙動がおかしいところがある気がしてます.詳しくは書かないけど.

ちょっと時間があるときに cakephp 本家の方で聞いてみようかなぁとは思ってますけど,どこで聞けば良いのかな.cakephp.org 中の IRC とか slack になるのかな?

話変わるけど...

国内の cakephp 関連グループは,ちょっと前までは cakephp.jp があって,フォーラムなんかもありましたが,今は本家のホームページにリンクされてしまっているみたいですね.cakephp.org から japanese を選ぶと cakephp.jp になって日本語表示される感じ.

何もなくなったみたいだし,有った方が便利かなとも思うので,誰もやらないなら何か国内グループを立ち上げた方が良いのかな?とも思ったり.それ以前に,そもそも需要はあるのかな?最近,思いついたとき(ネタに困ったとき?)に cakephp の tips みたいなものを書いてみてますが,わりとアクセスはあるみたいなので需要はあるのかなぁとは思って居るけど.