Cakephp3に関してですが
同一フォーム内にsubmitが複数存在する場合、
Controller側で判別するにはどうすれば良いでしょうか?
cakephp2からおそらくform関連の仕様が変更されており
方法がわかりません。
教えていただきたいです。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答3件
0
ベストアンサー
引用テキスト同一フォーム内にsubmitが複数存在する場合、
submitする手段がボタンの場合、以下で凌ぎました。
①「name」を追加
view
<?php echo $this->Form->submit(__(' 作成 ',true),array( 'name' => 'hoge', ));?> <?php echo $this->Form->submit(__(' 作成 ',true),array( 'name' => 'moge', ));?>
②
コントローラでif文などで分岐して処理を分ける
controller
if (isset($this->request->data['hoge'])) { } elseif ($this->request->data['moge'])) { }
cakephp3で通用するかはわかりませんが、ご参考までに。
投稿2016/07/14 03:48
編集2016/07/14 03:49総合スコア44
0
formのactionを分ける方法が良いと思います。
PHP
1echo $this->Form->create($entity, ['url' => ['action' => 'login']]); 2echo $this->Form->end();
formをcreateする際に'url'というoptionでactionを指定する事が出来ます。
ちなみにですがcontrollerも代えたい場合は同じようにoptionで指定する事が出来ます。
PHP
1echo $this->Form->create($entity, ['url' => ['controller' => 'Users', 'action' => 'login']]); 2echo $this->Form->end();
他にも単純な方法としては識別できるデータをhiddenでformに仕込んで判断する方法があります。
PHP
1echo $this->Form->create($entity); 2echo $this->Form->hidden('type', ['value' => 'formA']) 3echo $this->Form->end();
投稿2016/07/13 14:55
総合スコア27
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。