簡體   English   中英

無法在preUpdate奏鳴曲中獲取我的舊實體

[英]Can't get my old Entity in preUpdate Sonata

這是交易,我正在嘗試更新實體,但是我想將更新之前的實體狀態與更新之后的實體狀態進行比較。

我嘗試比較實體中的用戶數。

例如,如果我添加一個用戶,我想讓我的代碼知道,例如,我在更新之前有4個用戶,在更新之后有5個用戶(並獲得該用戶以供進一步使用)。

閱讀了不同的主題之后,我嘗試在preUpdate($object){}方法中這樣做

$em = this->getConfigurationPool()->getContainer()->get('doctrine')->getManager();
$original = $em->getUnitOfWork()->getOriginalEntityData($object);

但是兩者

var_dump(count($object->getUsers()));
var_dump(count($original['users']));

給出相同的值,根據我的示例,兩種情況下的值均為5(因此更新后的值)。

有什么方法可以將實體的old_state保存在var中? 我究竟做錯了什么?

編輯:這不是Doctrine的preUpdate函數,而是SonataAdmin的preUpdate函數,不知道它們是否相同。

請在preUpdate函數中嘗試以下操作:

    $em = $this->getModelManager()->getEntityManager($this->getClass());
    $original = $em->getUnitOfWork()->getOriginalEntityData($object);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM