2015-02-07 122 views
0

我在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()檢查參數,那麼我看到所有參數都到達控制器。

有沒有人有這個問題的想法?

回答

0

您是否在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

相關問題