gpt4 book ai didi

symfony-2.1 - 在 preUpdate Sonata Admin Bundle 中获取旧数据

转载 作者:行者123 更新时间:2023-12-04 03:12:11 24 4
gpt4 key购买 nike

我有一个 product实体,它有一个 images存储来自产品的图像名称的字段,但图像名称取决于 part_number字段是唯一的,所以如果用户在零件号中犯了错误并且他想编辑它,那么我也必须更改图像名称

我试过这个,但它不起作用:

// class ProductsAdmin extends Admin

public function preUpdate($product) {

$old_product = $this->getSubject();

if ($old_product->getPartNumber() != $product->getPartNumber)
{
// change file names
}

$this->saveFile($product);
}

如何在 preUpdate() 函数中获取原始行?

最佳答案

根据官方 SonataAdmin 谷歌论坛的主题:
https://groups.google.com/forum/#!topic/sonata-devs/0zML6N13i3U
您需要使用 UnitOfWork 类:
http://www.doctrine-project.org/api/orm/2.3/class-Doctrine.ORM.UnitOfWork.html

这样做:

public function preUpdate($object)
{
$em = $this->getModelManager()->getEntityManager($this->getClass());
$original = $em->getUnitOfWork()->getOriginalDocumentData($object);
}

因此,您将获得数据库实体的值数组。
例如:要访问您的实体的值密码,请执行以下操作:
$password = $original['password'];

仅此而已。
享受:)

关于symfony-2.1 - 在 preUpdate Sonata Admin Bundle 中获取旧数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16095886/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com