2

authorEdit と author Create の 2 つのフォームがあります。これら 2 つのフォームは、1 つのコントローラーで管理されます。各フォームには送信ボタンがあり、それらのボタンの名前は同じではありません。

送信ボタン名に関して使用しているフォームをコントローラで確認するにはどうすればよいですか?

ありがとうございました。

4

2 に答える 2

4

2つの異なるアクションを使用してから、共有メソッドを呼び出すことができます。

/**
 * ...
 */
public function createAction()
{
    return $this->processForm('create');
}

/**
 * ...
 */
public function editAction()
{
    return $this->processForm('edit');
}

private function processForm($action)
{
    // ...
    return array(/* ... */);
}
于 2012-11-30T13:19:43.473 に答える
3

1 つのルートのみを使用する場合の解決策もあります。

使用しているフォームの名前が異なる場合 (getName() 関数を上書きした場合)、次のように確認できます。

$this->getRequest()->get('yourFormName'))

1 つのフォームが送信された場合。

したがって、あなたの場合は次のようになります。

if($this->getRequest()->get('authorEdit')) {
    //
} elseif($this->getRequest()->get('authorCreate')) {
    //
}
于 2012-11-30T15:04:44.167 に答える