剛開始使用第一個extbase擴展。在localconf中我添加了這些動作:'list,new,show,create,edit'。TYPO3 extbase - 獲取非持久對象的「uid」
默認情況下,「創建」重定向到「列表」沒有參數,並且在擴展名創建後正常工作。
$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));
}
要
您是否嘗試添加對象本身而不是對象的uid? '$ this-> redirect('show',NULL,NULL,array('priceCalcForm'=> $ newPriceCalcForm));' – Merec
這應該工作。但你仍然需要堅持對象第一 – hildende
@Merec寫一個答案,而不是評論,所以OP可以確認它。 – biesior