Cakephpのtransitionコンポーネントで送信ボタンを複数配置する

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) "一時保存"
}

これであるかどうかの判定で判別が出来るので、処理をそれぞれ変える事が出来た。

   このエントリーをはてなブックマークに追加