我想建立一個創建表單的預覽頁面。在previewAction
中,我將記錄的「已刪除」屬性設置爲「1」,因爲在BE中,列表模塊用於批准插入的記錄 - 因此如果記錄永遠不會最終保存,則無論如何它都會被刪除。刪除記錄的Extbase屬性映射
問題:我可以創建記錄(deleted=1
) - 我可以跳回表單(無需回曆史記錄,因爲我必須保留創建的對象)。但是,如果我再次提交屬性映射告訴我
對象與標識類型爲MyModel的「3」找不到。
當然是因爲它被刪除了。 Repository中用於忽略已刪除的設置在這裏沒有采取措施。
是的,我可以通過手動填寫了一切繞過Extbase魔法,但是這不是我想要的。
這裏是行動得到一個想法是什麼我想
/**
* action preview
*
* @param MyModel
* @return void
*/
public function previewAction(MyModel $newModel)
{
//check if model was already saved
$uid = $this->request->hasArgument('uid') ? this->request->getArgument('uid') : 0;
if($uid){
$newModel = $this->myRepository->findDeletedByUid($uid);
$this->myRepository->update($newModel);
}
else{
$newModel->setDeleted(true);
$this->myRepository->add($newModel);
}
$this->view->assign('ad', $newModel);
$this->persistenceManager->persistAll();
$uid = $this->persistenceManager->getIdentifierByObject($newModel);
$this->view->assign('uid', $uid);
}
任何想法?
這不起作用,因爲動作參數previewAction(MyModel $ newModel)由屬性映射器映射。屬性映射器不使用存儲庫(我認爲是這樣)。 –
這實際上是一個非常好的主意 - 模型將用表單數據更新?那麼這將是最好的方式。 –
然後,您應該能夠更新存儲庫中的對象,是的。如果你想設置記錄是否被刪除,你還需要一個布爾屬性,getter和setter在你的域模型中。再次更新我的答案。 – j4k3