1
我想为Sonata Admin中的某些对象创建单个修订选项。将表单绑定后的原始数据保存为对象
我虽然要做到这一点通过以下方式:
- 用户编辑条目
- 形式进行验证
- 新的信息被保存为一个单独的条目(我称之为
revision
) - 原来的对象没有被修改,除了相对于修订
,使代码看起来小号omething像这样(源Sonata\AdminBundle\Controller\CRUDController::editAction()
):
$object = $this->admin->getObject($id);
$this->admin->setSubject($object);
$form = $this->admin->getForm();
$form->setData($object);
$form->bind($this->get('request')); // does this persist the object ?
// and here is what I basically want to do:
$object->setId(null);
$orig = $em->getRepository("MedtravelClinicBundle:Clinic")->find($id);
$orig->setRevision($object);
$this->admin->update($orig);
的问题是,$orig
加载已修改,所以var_dump($orig === $object)
是true
。
我也试过$em->getUnitOfWork()->getOriginalEntityData($object);
- 它抓取正确的数据,但作为一个数组,而不是一个对象(这可能是最后的手段)。
所以,我怎么能得到(并保存)原始对象的形式绑定后发生?