就我所见,像 property_exists()
这样的反射方法对 dotric2 代理对象不起作用。
在这种情况下,通过关系 $user->getCity()
检索代理
在这种情况下,如何检查属性是否存在/设置?
最佳答案
解决方案是 ReflectionClass::getParentClass()
。
所以这样的代码应该可以工作:
$reflect = new \ReflectionClass($proxyObject);
if ($proxyObject instanceof \Doctrine\Common\Persistence\Proxy)
// This gets the real object, the one that the Proxy extends
$reflect = $reflect->getParentClass();
$privateProperty = $reflect->getProperty('privateProperty');
$privateProperty->setAccessible(true);
$privateProperty->setValue($proxyObject, $yourNewValue);
关于php - 对一个 dotric2 代理对象的反射(reflection),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14812123/