2

我正在構建一個基於ZF2的網站,它有兩種不同的佈局。它有一些公共頁面和一些需要用戶認證的內部頁面,每一組頁面都有它們的佈局。我最初想要創建一個控制器插件,並檢查用戶是否具有身份,然後我將更改佈局,但它也會更改登錄用戶的公共頁面佈局,這是我們不想要的。另外我不知道如何從控制器插件更改佈局。Zf2佈局和認證

內部頁面的佈局還需要一些關於當前用戶和來自其他表格的其他信息的信息。所以我想創建另一個插件來檢查用戶是否具有身份,並設置佈局變量。我不知道如何獲取控制器插件中的佈局對象來設置變量。也不知道如何讓一個插件訪問其他插件。

此外,如果用戶登錄或不登錄,我還會檢查每個操作的內部頁面。如果他沒有身份證件,我會將他發送到登錄頁面。這導致了很多重複的代碼,所以有沒有辦法將這些代碼移動到控制器插件,以及如何告訴它檢查用戶在特定頁面上的身份,以及如果用戶具有身份,則允許他訪問該頁面,否則將其發送到登錄屏幕。

回答

1

最終,這看起來像您要編寫的自定義LayoutModule。我想你已經看過EdpModuleLayouts?如果沒有,那就這樣做。

什麼該模塊主要作用是:它會檢查當前模塊,然後檢查是否有佈局配置內附着出於這個模塊。

您最終只需要這樣做,唯一的區別是您不需要將佈局附加到整個模塊,而可能更偏向於特定的路線。你會檢查當前的路線是否是,如果它是一個佈局配置配置的路線,你會改變佈局。

+0

感謝Sam,解決了一個問題。第二,我需要設置一些用戶信息到第二個佈局的佈局變量,所以有任何建議。 –

+0

ViewHelpers - 一個VH將訪問UserIdentity並顯示任何你喜歡的內容。 – Sam

+0

但我需要顯示的信息不是用戶實體的一部分。實際上它是應用程序的總結,它從至少3個地方獲取。 –