请帮忙!我是 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(使用前将#替换为@)