【发布时间】:2013-07-18 14:18:45
【问题描述】:
我创建了一个名为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;
}
【问题讨论】: