php – Doctrine 1.2:禁用缓存

this问题类似,我对doctrine如何缓存/保持查询结果的关系有一些问题.

现在我知道我可以通过调用refresh / refreshRelated来解决这个问题,但有没有办法暂时禁用表的水合缓存?
特别是在select中使用连接时,示例代码变为:

$result2 = Doctrine_Query::create()
           ->leftJoin('s.School sc')
           ->from('Student s')
           ->execute();

你真的希望Doctrine使用你加入的数据,而不是使用之前选择的缓存水合结果.

有办法做到这一点吗?

提前致谢!

解决方法:

我认为认情况下它应该与查询结果保持一致,除非您更改了Doctrine_Core :: ATTR_HYdratE_OVERWRITE.您可以使用以下方法检查值:

$doctrineManager = Doctrine_Manager::getInstance();
$val = $doctrineManager->getAttribute(Doctrine::ATTR_HYdratE_OVERWRITE); 

当您调用refresh()时,它会强制此值为true,并再次执行查询,然后恢复该设置.如果您的确是假的,可以使用$doctrineManager-> setAttribute进行更改

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...