微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – Zend Framework – 在不同的模块中重定向到IndexController

所有,

我在Zend的mvc Framework中设置了以下项目.在访问应用程序时,我希望用户重定向到“移动”模块,而不是转到“认”模块中的IndexController.我怎么做?

-billingsystem
-application
    -configs
        application.ini
    -layouts
        -scripts
            layout.phtml
    -modules
        -default
            -controllers
                IndexController.PHP
            -models
            -views
            Bootstrap.PHP
        -mobile
            -controllers
                IndexController.PHP
            -models
            -views
            Bootstrap.PHP
Bootstrap.PHP
-documentation
-include
-library
-logs
-public
    -design
        -css
        -images
        -js
    index.PHP
    .htaccess

我的index.PHP有以下代码

require_once 'Zend/Application.PHP';
require_once 'Zend/Loader.PHP';


$application = new Zend_Application(
  APPLICATION_ENV,
  APPLICATION_PATH . '/configs/application.ini'
);

$application->bootstrap()->run();

解决方法:

你有两个选择:

1-通过编辑application.ini文件,将mobile设置为应用程序的认模块
resources.frontController.defaultModule =“mobile”

2-您可以创建一个插件拦截每个请求并转发到同一个控制器和操作但是移动模块

class Name_Controller_Plugin_mobile extends Zend_Controller_Plugin_Abstract {

    public function predispatch(Zend_Controller_Request_Abstract $request) {

                $module = $request->getModuleName();
                $controller = $request->getControllerName();
                $action = $request->getActionName();
                if($module !== "mobile" || $module !== "error"){
                  return $request->setModuleName("mobile")->setControllerName("$controller")
                    ->setActionName("$action")->setdispatched(true);

                 }else{
                   return ;
                 }
    }
}

并且不要忘记将错误控制器添加到if子句中,以便在应用程序抛出错误时不会出现神秘的循环,这就是它

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐