在Zend 1.11

时间:2018-11-12 16:35:06

标签: zend-framework

在前端应用程序(单页)中,我正在使用AngularJS(不是hashbang(#)路由)实现客户端路由。后端在ZendFramework 1.11中。

我想始终为几个不同的get请求(例如domain.com/ 用户 /home/list、domain.com/ 企业 / internal /仪表板,domain.com / 报告 / page2 / download ...)。

因此,我正在考虑将路径检查放入Bootstrap.php中,并重定向到主页。所以我试图在 Bootstrap.php 文件中获取 ModuleName ,但是我总是将moduleName设置为 default 。它应该是用户企业报告

感谢您的帮助和时间。

请找到以下示例用例

示例文件夹示例

application
---modules
------controllers
----------HomeController.php
-------------listAction()

boostrap.php中的示例代码

//request url : http://myurl.com/user/home/list
$rtr = new Zend_Controller_Router_Rewrite();
$h = new Zend_Controller_Request_Http();
$rq = $r->route($h);
print "getModuleName - ".$rq->getModuleName(); // default
print "getControllerName - ".$rq->getControllerName(); //home
print "getActionName - ".$rq->getActionName(); //list

但是上面的输出是错误的( moduleName:default ),应该是( moduleName:user

print "getModuleName - ".$rq->getModuleName(); // user
print "getControllerName - ".$rq->getControllerName(); //home
print "getActionName - ".$rq->getActionName(); //list

1 个答案:

答案 0 :(得分:0)

我找到了获取模块名称,控制器和操作名称的解决方案

$this->bootstrap('FrontController');
$front = $this->getResource('FrontController');
$req = new Zend_Controller_Request_Http();
$router = $front->getRouter();
$router->route($req);
$module = $req->getModuleName();//user
$controller = $req->getControllerName();//home
$action = $req->getActionName();//list
相关问题