cakephpのtransitionコンポーネント利用時に送信ボタンを複数配置し、どちらが押されたかを判定してみたメモ。
ビュー
以下のように name
属性でわけておく。
今回は、完了、と、一時保存、でわけた。
1
2
| <?php echo $this->Form->submit('一時保存', array('name' => 'temp')); ?>
<?php echo $this->Form->submit('完了', array('name' => 'comp')); ?>
|
コントローラ
コントローラので受けた際に、以下のように取得する。
1
2
3
4
5
6
7
8
| $all_data = $this->Transition->mergedData();
if(isset($all_data["comp"]){
//完了が押された時の処理
}else if(isset($all_data["temp"])){
//一時保存が押された時の処理
}
|
mergedData
の中には以下のように格納されている。
(var_dump
した結果)
1
2
3
4
5
6
7
8
9
10
11
12
| array(2) {
["hoge_model"]=>
array(87) {
["huga"]=>
string(0) "test"
["foo"]=>
string(0) "bar"
...
}
["temp"]=>
string(12) "一時保存"
}
|
これであるかどうかの判定で判別が出来るので、処理をそれぞれ変える事が出来た。