我想为创建表单构建一个预览页面。我在输入时将记录的“已删除”属性设置为“1”,previewAction
因为在 BE 中,列表模块用于批准插入的记录 - 因此,如果该记录从未最终保存,则无论如何都将其删除。
问题:我可以创建记录 ( deleted=1
) - 我可以跳回表单(没有返回历史记录,因为我必须保留创建的对象)。但是如果我再次提交,属性映射会告诉我
未找到标识为“3”的 MyModel 类型的对象。
当然那是因为它被删除了。存储库中忽略已删除的设置未在此处执行操作。
是的,我可以通过手动填充所有内容来绕过 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);
}
有任何想法吗?