我目前正在编写带有后端模块的Extbase扩展。我已经为后端模块的模板分配了一个数组。现在,我尝试使用模板中表单的输入将该数组提交回我的crontroller操作“ pageGenerator”。 这是我的控制器和模板中的代码:
控制器:
public function listAction()
{
$array = [
'1' => '',
'2' => '',
'3' => ''
];
$this->view->assign('array', $array);
$this->view->setTemplatePathAndFilename('EXT:bm_test/Resources/Private/Templates/template.html');
}
public function pageGeneratorAction(array $array=null){}
流体模板:
<div align="center">
<f:form method="post" controller="DomainModel" action="pageGenerator"
name="array" object="{array}" >
<input type="text" name="array[1]">
<input type="text" name="array[2]">
<input type="text" name="array[3]">
<f:form.submit value="Submit" />
</f:form>
</div>
问题是无论我在文本字段中键入什么内容,数组都为null。当我从pageGenerator动作中删除“ = null”时,出现以下错误:
Too few arguments to function Bmt\BmTest\Controller\DomainModelController::pageGeneratorAction(), 0 passed and exactly 1 expected
因此,似乎未提交数组。 有人知道我在这里做错什么吗?预先感谢您的帮助。
答案 0 :(得分:1)
您是否尝试在setTemplatePathAndFilename之后插入assign变量? 因为在typo3中,如果模板名称与操作名称不同,则需要首先将其初始化,然后返回带有已分配变量的视图 例子
$this->view->setTemplatePathAndFilename('EXT:bm_test/Resources/Private/Templates/template.html');
$this->view->assign('array', $array);
return $this->view->render();