在我陈述我的问题之前,请注意,这是我第一次使用Typo3和/或创建Extbase扩展。Typo3扩展:通过参数传递对象不起作用。我究竟做错了什么?
基本上我想为Typo3创建一个extbase扩展,但我似乎无法围绕通过参数传递对象(分配给特定模板的视图)目的是将对象附加到另一个对象(1:n关系)。
我的例子:
我有分配给模板(“Show.html”)的视图的类型“设备”的一个OBJEKT。我可以在模板中列出它的所有属性,所以它肯定存在于视图中。 现在我想使用表单创建一个类型为“主机”的对象,然后将其附加到这个特定的“设备”对象。 问题是:我无法将“设备”类型的对象转移到“主机”类型的控制器的特定操作,该操作本身应该将其分配给另一个模板的视图。
请看下面的代码示例:
<f:link.action action="new" controller="Host" arguments="{appliance:appliance}" >Add Host X</f:link.action>
这是该“家电”的对象传送给“主机”的作用,“新”的“Show.html”模板具体的代码行使用参数控制器......“主机”控制器:
public function newAction(\Cjk\Icingaconfgen\Domain\Model\Appliance $appliance, \Cjk\Icingaconfgen\Domain\Model\Host $host = NULL)
{
$this->view->assign('appliance', $appliance);
$this->view->assign('host', $host);
}
在这一点上,我得到以下错误信息:
“参数1传递给 CJK \ Icingaconfgen \控制器\ HostController :: newAction()必须CJK \ Icingaconfgen \域\型号\电器,没有任何的 实例给出”
我到底做错了什么?
你有两个单独的插件,一个用于'Appliance'和一个用于'Host',现在尝试在这两者之间传输数据? –
在Show.html模板中生成的链接是什么样的? –
newAction的docblock是什么?TYPO3需要定义每个方法参数来解析参数,函数参数列表中的类型声明是不够的。 – j4k3