2014-10-08 75 views
0

以前關於Laravel中的cookies有asked。我現在很瞭解他們,但我現在正在跑進一堵牆。使用Cookie記住Laravel中的用戶設置

我想要/被告知使用Cookie來「記住」用戶對視圖進行的某些設置。

我爲什麼要使用Cookie的:

我已經在我的網站在左邊菜單欄後端,填補整個高度。但默認情況下,菜單欄是寬的(就像mailchimp有),所以我創建了一個按鈕,可以縮小菜單欄。但是,當用戶縮小菜單欄並轉到後端的其他頁面時,菜單欄將自行重置爲默認寬度。我希望我的網站能夠「記住」用戶最喜歡哪種菜單欄。

現在,我知道如何製作一個Cookie,我知道如何將它傳遞到下一頁,但是,我不知道並希望知道的是:如何在用戶按下時觸發Cookie按鈕縮小菜單欄?

這應該在用於使窄按鈕工作的JavaScript中完成嗎?我真的不知道。我不想得到一些完整的代碼或任何東西,我只是喜歡你們提供的一些意見,你們如何做到這一點或者如何做到這一點。

+0

用戶單擊按鈕> php/javascript降低寬度並設置寬度cookie>用戶刷新或加載新頁面> php/javascript(取決於哪一個由您決定)檢查頁面加載的cookie,如果存在則相應設置寬度 – Steve 2014-10-08 10:44:56

+0

使用Javascript設置cookie,並在渲染模板時從Laravel讀取cookie以相應地調整設置。 – 2014-10-08 10:45:00

+0

@Steve由於Cookie必須附加到響應中,因此如何在視圖本身的JavaScript中設置寬度Cookie並將其附加到響應中? :/ – Jeroen 2014-10-08 10:58:03

回答

0

我會使用ajax,在按鈕(設置)上點擊發送一個發佈請求到您的控制器,這將作出一個Cookie響應。

如果您不想在cookie響應之後強制刷新,您可以作弊並使用'302'類型的響應,也可以將cookie製作成隊列。 Laravel會自動爲您執行下一個響應中的cookie。

如果我可以做一個額外的建議:

我真的在數據庫保存這也和使用內存緩存從內存中加載的設置。

Jereon,請讓我知道你是否需要上述任何代碼示例。我很樂意爲你做好準備。