複数Formボタンの設置と判別【CakePHP2.5】
CakePHPを使用して1つのビューに複数のFormボタンを設置することがありました
その際のコントローラ側での判別方法です
以下の記事ではCakePHP1.3と2.0での判別方法を紹介しているようですが、CakePHP2.5では仕様が変わっているようでした
CakePHP2.0でsubmitを2つ使いたい - ぶろぐ
1)ビュー側での設定
ビュー側では以下のように、各Fromボタンにlabelとnameを設定する必要があります
今回はlabelにtest、nameにhogeという名前をつけています
<?php $options = array( 'label' => 'test', // ボタンに表示される名前 'class' => 'ボタンのクラス', 'name' => 'hoge' ); echo $this->From->end($options); ?>
2)コントローラ側での判別
コントローラ側では、postされた際にそのデータが、
$this->request->data
に格納されるのですが、ボタンに与えられた名前もこの中に含まれます
具体的には、
$this->request->data['hoge']
に、testという値が格納されています
これを使用して、コントローラ側で押されたボタンを判別することが可能です
以上が、複数Formボタンの設置と判別方法になります