2

我有两种形式:作者编辑和作者创建。这两种形式在单个控制器中进行管理。每个表单都有一个提交按钮,并且这些按钮的名称不一样。

我如何在我的控制器中检查我正在使用哪个表单来提交按钮名称?

谢谢你。

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

如果您只想使用一条路线,还有一个解决方案:

如果您使用的表单具有不同的名称(因此您已经覆盖了 getName() 函数),您可以检查

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

如果发送了一份表格。

所以在你的情况下,它看起来像:

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