动作参数未由流体形式填充
action parameter not populated by fluid form
大家好,我无法向操作提供填写表单的对象:我能够加载表单并使用显示操作中准备的对象填充它,但是当我将其提交给表单时存储对象,表单内容不在操作方法参数中传递,而是在请求参数的数组中。所以看起来模型 class 是正确的,形式是正确的,第一个动作是正确的,但是流体形式中缺少某些东西或者动作中有错误。关于寻找问题原因的任何建议?提前致谢。
这是加载表单的控制器
/**
* @param \Aip\AipMediakey\Domain\Model\Subscriptions $newSubscription
* @throws \TYPO3\CMS\Extbase\Mvc\Exception\NoSuchArgumentException
* @throws \TYPO3\CMS\Extbase\Mvc\Exception\StopActionException
* @throws \TYPO3\CMS\Extbase\Mvc\Exception\UnsupportedRequestTypeException
*/
public function iscrizioneAwardFirstStepAction(\Aip\AipMediakey\Domain\Model\Subscriptions $newSubscription = NULL)
{
.....
$newSubscription = $this->objectManager->get('Aip\AipMediakey\Domain\Model\Subscriptions');
/** @var \Aip\AipMediakey\Domain\Model\Subscriptions $newSubscription */
$newSubscription->setCampaignTitle('');
$newSubscription->setProductName('');
$this->view->assign('newSubscription', $newSubscription);
.....
这是流体形式
<f:form action="iscrizioneAwardStepSoggetti" object="{newSubscription}" name="newSubscription" >
<f:form.hidden property="eventId" value="{award.uid}"/>
Iscrizione all'award : {award.title}
Campagna <br>
Titolo Campagna <f:form.textfield property="campaignTitle" /> <br>
NomeProdotto <f:form.textfield property="productName" /> <br>
<f:form.button type="submit" name="Indietro" value="indietro" formmethod="post">Indietro</f:form.button>
<f:form.button type="submit" name="Procedi" value="procedi" formmethod="post">Procedi</f:form.button>
</f:form>
这是调用提交表单的操作:
/**
* @param \Aip\AipMediakey\Domain\Model\Subscriptions $newSubscription
* @throws \TYPO3\CMS\Extbase\Mvc\Exception\StopActionException
* @throws \TYPO3\CMS\Extbase\Mvc\Exception\UnsupportedRequestTypeException
* @throws \TYPO3\CMS\Extbase\Persistence\Exception\IllegalObjectTypeException
*/
public function IscrizioneAwardStepSoggettiAction(\Aip\AipMediakey\Domain\Model\Subscriptions $newSubscription = NULL)
{
$this->subscriptionsRepository->add($newSubscription);
}
我发现我的错误,方法
IscrizioneAwardStepSoggettiAction
应该被命名
iscrizioneAwardStepSoggettiAction(以小写开头的 i)
如ext_local_conf.php
所述
我希望至少这个答案可以帮助到其他人。
大家好,我无法向操作提供填写表单的对象:我能够加载表单并使用显示操作中准备的对象填充它,但是当我将其提交给表单时存储对象,表单内容不在操作方法参数中传递,而是在请求参数的数组中。所以看起来模型 class 是正确的,形式是正确的,第一个动作是正确的,但是流体形式中缺少某些东西或者动作中有错误。关于寻找问题原因的任何建议?提前致谢。 这是加载表单的控制器
/**
* @param \Aip\AipMediakey\Domain\Model\Subscriptions $newSubscription
* @throws \TYPO3\CMS\Extbase\Mvc\Exception\NoSuchArgumentException
* @throws \TYPO3\CMS\Extbase\Mvc\Exception\StopActionException
* @throws \TYPO3\CMS\Extbase\Mvc\Exception\UnsupportedRequestTypeException
*/
public function iscrizioneAwardFirstStepAction(\Aip\AipMediakey\Domain\Model\Subscriptions $newSubscription = NULL)
{
.....
$newSubscription = $this->objectManager->get('Aip\AipMediakey\Domain\Model\Subscriptions');
/** @var \Aip\AipMediakey\Domain\Model\Subscriptions $newSubscription */
$newSubscription->setCampaignTitle('');
$newSubscription->setProductName('');
$this->view->assign('newSubscription', $newSubscription);
.....
这是流体形式
<f:form action="iscrizioneAwardStepSoggetti" object="{newSubscription}" name="newSubscription" >
<f:form.hidden property="eventId" value="{award.uid}"/>
Iscrizione all'award : {award.title}
Campagna <br>
Titolo Campagna <f:form.textfield property="campaignTitle" /> <br>
NomeProdotto <f:form.textfield property="productName" /> <br>
<f:form.button type="submit" name="Indietro" value="indietro" formmethod="post">Indietro</f:form.button>
<f:form.button type="submit" name="Procedi" value="procedi" formmethod="post">Procedi</f:form.button>
</f:form>
这是调用提交表单的操作:
/**
* @param \Aip\AipMediakey\Domain\Model\Subscriptions $newSubscription
* @throws \TYPO3\CMS\Extbase\Mvc\Exception\StopActionException
* @throws \TYPO3\CMS\Extbase\Mvc\Exception\UnsupportedRequestTypeException
* @throws \TYPO3\CMS\Extbase\Persistence\Exception\IllegalObjectTypeException
*/
public function IscrizioneAwardStepSoggettiAction(\Aip\AipMediakey\Domain\Model\Subscriptions $newSubscription = NULL)
{
$this->subscriptionsRepository->add($newSubscription);
}
我发现我的错误,方法
IscrizioneAwardStepSoggettiAction
应该被命名
iscrizioneAwardStepSoggettiAction(以小写开头的 i)
如ext_local_conf.php
所述我希望至少这个答案可以帮助到其他人。