刚开始使用第一个 extbase 扩展。在 localconf 中,我添加了以下操作:“列表、新建、显示、创建、编辑”。
默认是“创建”重定向到没有参数的“列表”,并且在创建扩展后就可以正常工作。
$this->redirect('list'); // <- this works if used
但我不想重定向到“列表”,而是重定向到“显示”以显示新添加的 priceFormCalc。一位同事帮助我使用坚持来完成此任务。
下面是代码,它可以工作。但是在网上阅读似乎坚持运行不应该是最佳实践。在不先手动持久化的情况下调用动作秀应该是可行的。
所以问题是:这是正确的方法吗,还是有更“扩展基础”的方式来显示新创建的记录?
public function createAction(\TYPO3\OgNovomatrixpricecalc\Domain\Model\PriceCalcForm $newPriceCalcForm) {
$this->priceCalcFormRepository->add($newPriceCalcForm);
$this->flashMessageContainer->add('Your new PriceCalcForm was created.');
// workaround - or the right way?
$persistenceManager = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('Tx_Extbase_Persistence_Manager');
$persistenceManager->persistAll(); // <- save i database
$uid = $newPriceCalcForm->getUid(); // <- get UID of newly saved record
// do redirect using uid of newly created priceCalcForm
$this->redirect('show',Null,Null, array('priceCalcForm' => $uid));
}
至