在前端应用程序(单页)中,我正在使用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
答案 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