从视图传递一个对象与TYPO3到控制器6.2.9

问题描述:

我在Typo3的6.2.9所面临以下问题:从视图传递一个对象与TYPO3到控制器6.2.9

当我用F传递一些对象到控制器:链接操作和参数,对象将到达控制器,但他没有按照我发送的那样注册它们。对于这里更好的解释了单一的代码部分:

在部分:

<f:link.action action="new" controller="ForeignProductMeasuring" arguments="{planRow : planRow, plan:plan}">neue Dosierung anlegen</f:link.action> 

在网站生成的链接:

"index.php?id=1&tx_desinfektionsplan_desinfektionsplan%5BplanRow%5D=12&tx_desinfektionsplan_desinfektionsplan%5Bplan%5D=16&tx_desinfektionsplan_desinfektionsplan%5Baction%5D=new&tx_desinfektionsplan_desinfektionsplan%5Bcontroller%5D=ForeignProductMeasuring&cHash=2adafaba9c56b134d4d5ae382ee5d57b" 

什么显示的参数都是在我看来是正确的。

在这里,在控制器的操作:

public function newAction(\Orochemie\Desinfektionsplan\Domain\Model\ForeignProductMeasuring $newForeignProductMeasuring = NULL, 
\Orochemie\Desinfektionsplan\Domain\Model\PlanRow $planRow, 
\Orochemie\Desinfektionsplan\Domain\Model\Plan $plan) { 

\TYPO3\CMS\Extbase\Utility\DebuggerUtility::var_dump($this->request->getArguments()); 
$this->view->assign('newForeignProductMeasuring',$newForeignProductMeasuring); 
$this->view->assign('planRow', $planRow); 
$this->view->assign('plan', $plan); 

} 

错误看起来是这样的:

#1: PHP Catchable Fatal Error: Argument 2 passed to 
Orochemie\Desinfektionsplan\Controller\ForeignProductMeasuringController::newAction() 
must be an instance of Orochemie\Desinfektionsplan\Domain\Model\PlanRow, 
none given in /kunden/137629_70806/typo3/typo3conf/ext/desinfektionsplan/Classes/Controller/ForeignProductMeasuringController.php line 46 

对于我来说,它看起来像他不知道这是他得到的对象。但是,如果我用$ this-> request-> getArguments()检查参数,那么我看到所有参数都到达控制器。

有没有人有这个问题的想法?

您是否在PHPDoc注释中定义了您的参数?

/** 
* @param \Orochemie\Desinfektionsplan\Domain\Model\ForeignProductMeasuring newForeignProductMeasuring 
* @param \Orochemie\Desinfektionsplan\Domain\Model\PlanRow $planRow 
* @param \Orochemie\Desinfektionsplan\Domain\Model\Plan $plan 
* @return void 
*/ 
public function newAction(\Orochemie\Desinfektionsplan\Domain\Model\ForeignProductMeasuring $newForeignProductMeasuring = NULL, 
    \Orochemie\Desinfektionsplan\Domain\Model\PlanRow $planRow, 
    \Orochemie\Desinfektionsplan\Domain\Model\Plan $plan) { 

    ... 

} 

这些对于ObjectMapper非常重要。

+0

是的,我做到了。这也是我的想法。但没有运气.. – AxelB 2015-02-10 09:23:13