1
我使用memcahe
詳情如下,Symfony的學說緩存驅動程序:如何讓查詢和結果緩存在Symfony2和Doctrine2中查詢關聯實體?
doctrine:
orm:
metadata_cache_driver: memcache
result_cache_driver: memcache
query_cache_driver: memcache
我有Article
和Tag
實體它們manyToMany
關係。我有一個控制器獲取所有文章(分頁)並呈現給他們。下面的代碼是在使用useQueryCache()
和useResultCache()
Article
庫:
$articles = $this->createQueryBuilder('a')
->orderBy('a.created_at', 'DESC')
->getQuery()
->useQueryCache(true)
->useResultCache(true)
->getResult();
這DQL完美緩存查詢和結果,因爲我沒有看到Symfony的探查教義部執行的查詢。問題是相關實體Tag
未被緩存的結果。我在樹枝下面的代碼:
{% for article in articles %}
// ...
{% if article.tags|length %}
<div class="tag-wrapper clearfix">
{% for tag in article.tags %}
// ...
{% endfor %}
</div>
{% endif %}
// ...
{% endfor %}
呼叫article.tags
似乎獲取相關文章的標籤所有的時間沒有緩存。我看到所有查詢都在Symfony Profiler Doctrine部分的每個頁面加載中執行。可以緩存嗎?
我在我的頁面有分頁。我沒有在我的問題中提到它。編輯的問題。 – Sithu
我測試過了。它效果很好。 – Sithu
非常好聽! \ O / – annismckenzie