如何在Zend Framework的其他模块中访问一个模块?

问题描述:

我创建了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论坛,我无法找到正确的答案,我要问什么。

任何人都可以帮助我解决这个问题。 在此先感谢。 亲切的问候,

该模块将被单独访问,但在布局中,您可以根据用户/管理员设置菜单。您需要将会话变量a/c用于登录用户,并且必须将它们传递到呈现个人档案页面的文件中。 例如:

将会话变量传递给索引菜单文件,并相应地显示菜单。然后布局问题将被解决。

是的,可以在你的系统中创建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 

让我知道你是否有困惑。

首先它很难识别你的问题,请明确指出它,以便有人会帮助你。我所理解的是 “我丢失了管理员布局,浏览器重定向到了localhost/public/profile/edit URL。”

  1. 您失去了布局可能是因为您在当前控制器中更改了它或禁用了它。 完全没有问题,你为什么不能在多个模块中使用单个布局。
  2. 并且浏览器被重定向,因为你是这么做的。

对不起,如果我不是点,但我是我的最好理解你的问题。