FOSUserBundle setExpiresAt($date) 不起作用?

FOSUserBundle setExpiresAt($date) doesn't work?

我想修改我的客户端的 expires_at,当我执行 persist($client) 和 flush(); 时除了 setExpiresAt() 它不会更改 table.

中的值外,每个方法都可以正常工作
$client = $em->getRepository('ClientBundle:Client')->FindClient($id);

$expiresat = $client->getExpiresAt(); // the can see the (*) 
$expiresat->modify($durationcontract);
$client->setExpiresAt($expiresat);

// $durationcontract can be 6 months or one year
$client->setDuration($durationcontract);

$em->persist($client);
$em->flush();

(*) Class User 或我创建的 FOSUserBundle 中不存在此方法。你可以看到它

也许 Doctrine 看不到对象之间的区别。

所以,试试这个:

$expiresat = $client->getExpiresAt();
$expiresat = clone $expiresat;
$expiresat->modify($durationcontract);
$client->setExpiresAt($expiresat);