我是ZF的新手,需要爲我的3個用戶類型(僱員,僱主和管理員)創建多個登錄視圖。我應該使用索引控制器爲員工提供登錄信息,並創建單獨的控制器類來處理僱主和管理員登錄頁面?我如何利用JQuery將我的僱主和管理員用戶從索引視圖引導到正確的登錄頁面?如何使用Zend Framework創建多個登錄視圖?
感謝很多:)
我是ZF的新手,需要爲我的3個用戶類型(僱員,僱主和管理員)創建多個登錄視圖。我應該使用索引控制器爲員工提供登錄信息,並創建單獨的控制器類來處理僱主和管理員登錄頁面?我如何利用JQuery將我的僱主和管理員用戶從索引視圖引導到正確的登錄頁面?如何使用Zend Framework創建多個登錄視圖?
感謝很多:)
所有這些信息,我可以給你兩個選擇。
模塊
拆分你的應用成稱爲模塊的邏輯段,對於那些3組各組將接受其自身的模塊。 每個模塊模仿公知的標準的 「應用程序」 的結構:
ACL
http://framework.zend.com/manual/en/zend.acl.html
您可以通過「if()」語句來檢查哪個類型的用戶當前已經登錄並決定應該呈現哪個視圖。 自定義視圖呈現按照「Lobo」所述完成: via
$ this - > _ helper-> viewRenderer-> setRender('view-name');
如果你沒有任何用戶會話數據,我的意思是,如果你絕對不知道哪種訪問你的頁面的用戶,你只需要服務3個鏈接到任何一個不同模塊或不同的控制器,或者連接到同一個控制器,但將用戶類型作爲參數傳遞。
實例:
鏈接模塊:/modulename/controllername/actionname/
鏈接到某些控制器:/emplyeecontroller/login
鏈接到通用控制器處理不同PARAMS:/logincontroller/login/type/emplyee
有許多可能的解決辦法達到你想要的目標。 你必須決定哪一個最適合你的項目。
我會說,這是有點開放式的一個很好的方式來回答,但我會盡力填補空白與我的想象,給你一個答案。我不使用JQuery,所以我不能在那裏給你一個答案。
如果這只是爲了處理登錄,我會猜測邏輯或多或少是相同的(即使它不是邏輯應該在模型中),並且你只是想改變視覺外觀,這樣,那麼你可以使用代碼
$this->_helper->viewRenderer->setRender('view-name');
此代碼將呈現所謂的/應用/視圖/腳本/ 控制器 /*view-name*.phtml默認視圖。因此,您可以獲得用於區分不同用戶的任何變量,併爲他們提供正確的視圖。
如果有更多的差異比只是視覺我可能會使用loginController或類似的東西不同的行動。 然後,我會爲普通員工使用標準indexAction(因此視圖index.phtml爲默認值),並在該頁面上顯示某種類型的文本,如「不是員工?轉到僱主登錄」。然後,僱主被指示登錄/僱主或類似默認情況下會稱爲僱主行爲並使用僱主意見的東西。然後你做一些類似的管理員登錄。然後,控制器將是這個樣子
<?php
class LoginController
{
public function indexAction()
{
/*Do login stuff here*/
}
public function employerAction()
{
/*Do login stuff here*/
}
public function adminAction()
{
/*Do login stuff here*/
}
}
最後,如果有,你可能會考慮尋找到模塊之間的不同的用戶如何與您的網頁互動的主要區別。
非常感謝這些選項。我將使用第一種方法。你能確認Zend ACL不應該與第一種方法一起使用嗎? – SidC
如果你的用戶還沒有登錄,你沒有任何數據表明他們的類型,所以你可以使用ACL,如果你有會話數據可用,你可以使用這些數據執行ACL對他們的角色檢查。 –