Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用typo3 6.2.9将对象从视图传递到控制器_Php_View_Controller_Extbase_Typo3 6.2.x - Fatal编程技术网

Php 使用typo3 6.2.9将对象从视图传递到控制器

Php 使用typo3 6.2.9将对象从视图传递到控制器,php,view,controller,extbase,typo3-6.2.x,Php,View,Controller,Extbase,Typo3 6.2.x,我在Typo3 6.2.9中遇到了以下问题: 当我使用f:link操作和参数将一些对象传递给控制器时,这些对象将到达控制器,但他没有将它们注册为我发送的对象。为了更好地进行解释,请参见以下单个代码部分: 在部分会议上: <f:link.action action="new" controller="ForeignProductMeasuring" arguments="{planRow : planRow, plan:plan}">neue Dosierung anlegen<

我在Typo3 6.2.9中遇到了以下问题:

当我使用f:link操作和参数将一些对象传递给控制器时,这些对象将到达控制器,但他没有将它们注册为我发送的对象。为了更好地进行解释,请参见以下单个代码部分:

在部分会议上:

<f:link.action action="new" controller="ForeignProductMeasuring" arguments="{planRow : planRow, plan:plan}">neue Dosierung anlegen</f:link.action>
在我看来,这表明这些论点是正确的

以下是控制器上的操作:

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非常重要

/**
 * @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) {

    ...

}