2011-04-25 90 views
1

我創建了Zend框架結構像下面如何在Zend Framework的其他模塊中訪問一個模塊?

application 
    - configs 
    - controllers 
    - models 
    - modules 
    - admin 
     - controllers 
     - models 
     - views 
     ... 
    - user 
     - controllers 
     - models 
     - views 
     ... 
    - account 
     - controllers 
     - models 
     - views 
     ... 
    - profile 
     - controllers 
     - models 
     - views 
     ... 
    - views 
..... 

我創建具有兩種不同的用戶角色爲「用戶」和「管理」的應用程序。用戶和管理員都應該訪問模塊配置文件,並且只有管理員才能訪問帳戶模塊。目前我面臨的一個問題如下

當我以管理員身份登錄我得到在地址欄下面的網址和我完全得到管理員的菜單和設計(佈局)如我所料 本地主機/大衆/管理員/指標

但是當我點擊頁面的編輯個人資料鏈接,我失去了管理員的佈局和重定向到本地主機/公關/型材/編輯 URL瀏覽器。 與用戶模塊相同的問題也。

什麼,我究竟需要的是當我點擊編輯個人資料鏈接,我應該能夠訪問該頁面相同的佈局(管理員佈局管理員)和URL應該像 http://localhost/public/admin/profile/edit

是它當我擁有上面給出的模塊時,可以使用zend框架嗎?因爲我需要保持系統在模塊基礎上,我不想一次又一次重做相同的代碼。我檢查了Zend論壇,我無法找到正確的答案,我要問什麼。

任何人都可以幫助我解決這個問題。 在此先感謝。 親切的問候,

回答

0

該模塊將被單獨訪問,但在佈局中,您可以根據用戶/管理員設置菜單。您需要將會話變量a/c用於登錄用戶,並且必須將它們傳遞到呈現個人檔案頁面的文件中。 例如:

將會話變量傳遞給索引菜單文件,並相應地顯示菜單。然後佈局問題將被解決。

1

是的,可以在你的系統中創建plugin_architechture,但根據我的觀點,你的結構還不適合。

application 
    - configs 
    - controllers 
    - models 
    - modules 
    - admin (Backend Modules) 
     - user 
      - controllers 
      - models 
      - views 
      ... 
     - account 
      - controllers 
      - models 
      - views 
      ... 
     - profile 
      - controllers 
      - models 
      - views 
      ... 
    - front (Frontend Modules) 
     - user 
       - controllers 
       - models 
       - views 
       ... 
      - account 
       - controllers 
       - models 
       - views 
       ... 
      - profile 
       - controllers 
       - models 
       - views 

您需要創建兩個模塊,1)後端2)前端(默認)。

您還需要破解一些編碼,或者您應該創建自己的自動載入庫,瞭解您的新類型的URL。例如,如果我想在管理區的,然後你的網址是編輯個人資料系統中去,

http://www.server.com/admin/profile_edit/edit/id=99 

因此,在這種情況下,

1) admin = module 
2) profile = inner module of ADMIN 
3) edit = controller file inside profile module 
4) edit = action function name in controller file (editAction()) 
5) id = parameter to pass 

要實現這一結構,你需要做的是什麼,

創建自己的自動加載庫,擴展Zend庫的文件和類,它們負責從url解碼模塊/控制器/操作。

我個人創建了這個結構和它的工作。你應該搜索那些文件夾文件,

/library/zend/Controller/Action 
/library/zend/Controller/Dispatcher 

讓我知道你是否有困惑。

0

首先它很難識別你的問題,請明確指出它,以便有人會幫助你。我所理解的是 「我丟失了管理員佈局,瀏覽器重定向到了localhost/public/profile/edit URL。」

  1. 您失去了佈局可能是因爲您在當前控制器中更改了它或禁用了它。 完全沒有問題,你爲什麼不能在多個模塊中使用單個佈局。
  2. 並且瀏覽器被重定向,因爲你是這麼做的。

對不起,如果我不是點,但我是我的最好理解你的問題。