在我的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