我的web應用程序作爲頂欄,我需要顯示未消息的郵件數量。每個User
實體與Message
(多對多)關聯。顯示消息的總數(給定用戶)將是簡單:在Symfony 2中分配一個全局的Twig變量?
class User
{
/*
* @ORM\ManyToMany(targetEntity="Message", invertedBy="users")
*/
private $messages;
}
在枝杈:
Total messages: {{ app.user.messages|length }}.
但如果我需要統計只新郵件?假設我的存儲庫有一個getNewMessages(User $user)
方法,那麼如何將這個值全局分配用於每個模板?
我知道嫩枝全局,但我不知道我應該把相關代碼:
$twig = new Twig_Environment($loader);
$twig->addGlobal('text', new Text());
{{ text.lipsum(40) }}
你能解釋一下你的最後一句話?我應該如何緩存值以及哪些條件應該在請求時觸發新的查詢?謝謝。 – gremo
這將取決於你。您將計數設置爲會話變量,因此它將持續會話。這就是我所說的「緩存」。如果請求是前一個請求的X秒/分鐘,那麼您只能重新查詢新消息。這個問題並不重要,只是它存儲在會話中的一個副作用。 – MDrollette