Передача объекта из вида в контроллер с typo3 6.2.9

Я столкнулся со следующей проблемой в Typo3 6.2.9:

Когда я передаю некоторые объекты контроллеру, используя действие и аргументы f: link, объекты поступают в контроллер, но он не регистрирует их как отправленные мной. Для лучшего объяснения здесь приведены отдельные разделы кода:

в частичном:

<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

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]