Zend 路线 全部捕获

2024-02-03

请帮忙!我是 Send 新手,想要修改我正在开发的 cms 项目的默认路由。

如果控制器不存在,如何在 zend 中创建“捕获所有”路由?

我正在尝试创建如下链接:

mydomain.com/slug

mydomain.com/slug1

其中 slug 和 slug1 可以作为参数传递给指定的默认控制器 (pagesController),以便我可以从数据库中获取适当的内容。

我很感激任何帮助! :)


一种方法是编写一个简单的控制器插件来测试请求是否可以分派,如果不能,则将其发送到页面控制器/操作:

<?PHP
class PageRouter extends Zend_Controller_Plugin_Abstract {

  public function preDispatch(Zend_Controller_Request_Abstract $req) {
    $dispatcher = Zend_Controller_Front::getInstance()->getDispatcher();
    if (!$dispatcher->isDispatchable($req, $req)) {

      $req->setModuleName('default');
      $req->setControllerName('page');
      $req->setActionName('page');
    }
  }

}

并确保您将其注册到前端控制器:

Bootstrap.php:

protected function _initFrontControllerPlugins() {
    $this->bootstrap('FrontController');

    $fc = $this->getResource('FrontController');

    $pluginPageRouter = new PageRouter();
    $fc->registerPlugin($pluginPageRouter);    
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Zend 路线 全部捕获 的相关文章

随机推荐