2014-10-08 63 views
1

我有一個控制器的行動(我們可以稱之爲listPageAction)。此操作管理我的主視圖(元素列表)。這些元素可以被過濾(它在這個相同的Action上被管理)。Symfony 2 - 保持操作之間的變量沒有會話

我想保留過濾器值在我的不同頁面(= Actions)之間,並在我回到主視圖(listPageAction)時恢復它們。

我無法使用session,因爲該應用程序經常在瀏覽器的多個選項卡中使用,所以會話可能會發生碰撞。

我不能通過「手動」過濾器元素,因爲從其他頁面,我可以到達其他頁面,等等(這是一個分層的頁面列表)。將每個路線的3個變量傳遞給每個動作並不是最理想的。

使用全局變量會很好,但我不確定它是否可能像PHP中的經典全局變量。我用Twig的全局變量(我用於渲染)讀了幾件事情。這對我的需求是可能的嗎?怎麼樣 ?

其他可能性我已經確定(但我不知道如何使用它),將使用Listener。我想我可以在每個回覆中添加我的過濾器值(kernel.response)。 但是,我不知道我可以如何傳遞給我的聽衆過濾器,以及當我回到主頁面時如何在listPageAction上恢復它們​​。

在此先感謝

回答

0

您可以手動爲每個頁面之間的唯一參數,關鍵

這樣你可以使用會話,使用鍵來區分他們之間的多個標籤。

網址是page/{key}/step1page/{key}/step2 會話存儲對象將是像$session->get($key.".object");

+0

我認爲這不是最好的解決辦法,但目前我沒有更好的主意。我不太喜歡編輯所有路由以將「key」添加到URL中的事實。但是,由於我的限制,我暫時把它拿下來!謝謝。 – Seto 2014-10-14 20:45:18