我创建了一个名为的自定义模型Play
,它具有属性Title
以及Body
getter 和 setter。
在我的一个控制器Master
中,我有new and create actions
public function newAction(\TYPO3\Playground\Domain\Model\Play $newPlay = NULL) {
$this->view->assign('newPlay', $newPlay);
}
我的视图如下所示:
<table>
<f:form action="create" name="newPlay" object="{newPlay}">
<th>Title:</th>
<td>
<f:form.textfield property="title"/>
</td>
<th>Body:</th>
<td>
<f:form.textarea property="body"/>
</td>
</th>
<tr>
<td>
<f:form.submit value="Create"/>
</td>
</tr>
</f:form>
</table>
但是在控制器中的创建函数中,我收到此错误未设置必需参数“newPlay”。
public function createAction(\TYPO3\Playground\Domain\Model\Play $newPlay) {
echo $newPlay->getBody();
echo $newPlay->getTitle();
}
我在这里错过了什么吗?
更新
在将名称与对象匹配并删除字段属性的括号后,这是错误:
属性路径“”的属性映射时出现异常:未找到可用于从“array”转换为“TYPO3\Playground\Domain\Model\Play”的转换器。
我的解决方案
我很确定有比这更简洁的方法
public function createAction() {
$newPlayArray=$this->request->getArgument('newPlay');
$newPlay = json_decode(json_encode($newPlayArray), FALSE);
echo $newPlay->title;
}