我有两种形式:作者编辑和作者创建。这两种形式在单个控制器中进行管理。每个表单都有一个提交按钮,并且这些按钮的名称不一样。
我如何在我的控制器中检查我正在使用哪个表单来提交按钮名称?
谢谢你。
您可以使用 2 个不同的操作,然后调用一个共享方法。
/**
* ...
*/
public function createAction()
{
return $this->processForm('create');
}
/**
* ...
*/
public function editAction()
{
return $this->processForm('edit');
}
private function processForm($action)
{
// ...
return array(/* ... */);
}
如果您只想使用一条路线,还有一个解决方案:
如果您使用的表单具有不同的名称(因此您已经覆盖了 getName() 函数),您可以检查
$this->getRequest()->get('yourFormName'))
如果发送了一份表格。
所以在你的情况下,它看起来像:
if($this->getRequest()->get('authorEdit')) {
//
} elseif($this->getRequest()->get('authorCreate')) {
//
}