在我的Symfony /学说的应用程序,我有一个查询,通过随机的订单()。我多次调用同一个方法,但看起来查询的结果正在被缓存。防止主义的查询缓存中的Symfony
这里是我的相关代码:
$query = $table->createQuery('p')
->select('p.*, RANDOM() as rnd')
->orderBy('rnd')
->limit(1)
->useQueryCache(null)
->useResultCache(null);
$result = $query->fetchOne();
不幸的是,相同的记录返回每次,不管我路过null
既useQueryCache
和useResultCache
。我尝试使用false
而不是null
,但那也没用。最后,我还打过电话都setResultCacheLifeSpan(0)
和setResultCacheLifeSpan(-1)
,但也调用了一定的作用。
如何防止缓存,因为我希望有一个不同的随机行每次我调用该方法时所选择的任何见解?
编辑:我也试着打电话clearResultCache()
,但最终导致错误,说:“结果缓存驱动程序未初始化”。
编辑2:按照要求,这里是通过调用$query->getSqlQuery()
生成的SQL:
SELECT c.id AS c__id, c.name AS c__name, c.image_url AS c__image_url,
c.level AS c__level, c.created_at AS c__created_at, c.updated_at
AS c__updated_at, RANDOM() AS c__0 FROM cards c ORDER BY c__0 LIMIT 1
嗨马特,你有没有试过`$查询 - > useResultCache(假)`? – Darmen 2011-02-07 05:24:32
是的,我在我的问题中提到过我尝试使用false,但那也不起作用。 – 2011-02-07 14:27:46