Zend framework Zend框架模块、控制器、特定于操作的路由

Zend framework Zend框架模块、控制器、特定于操作的路由,zend-framework,routes,zend-route,Zend Framework,Routes,Zend Route,在我的zend framework应用程序中,我有如下路由和默认值: resources.router.routes.plain.defaults.module = "index" resources.router.routes.plain.defaults.controller = "index" resources.router.routes.plain.defaults.action = "index" 我希望能够更改任何模块、控制器或操作的默认路由 e、 g 让我们假设这个模块/控制器

在我的zend framework应用程序中,我有如下路由和默认值:

resources.router.routes.plain.defaults.module = "index"
resources.router.routes.plain.defaults.controller = "index"
resources.router.routes.plain.defaults.action = "index"
我希望能够更改任何模块、控制器或操作的默认路由 e、 g

让我们假设这个模块/控制器/动作结构:

content --- article --- read
                    --- write
        --- news    --- list
                    --- write
user    --- auth    --- signin
                    --- signout
        --- access  --- check
                    --- update
在这个架构中

for module=我想要的内容 控制器=作为默认控制器的项目,并且 操作=读取为默认操作。
如果选择控制器=新闻,则操作=列表将成为默认操作

for module=我想要的用户 controller=auth为默认控制器,action=sign为默认操作。 如果选择了controller=access,则action=check将成为默认操作

那么是否可以在application.ini中执行此操作?这个例子又是怎样的呢

提前感谢。

随机想法:


您可以为每个模块定义一个路由,该路由指向默认的特定操作

resources.router.routes.user.route = "user/:controller/:action/*"
resources.router.routes.user.defaults.module = "user"
resources.router.routes.user.defaults.controller = "auth"
resources.router.routes.user.defaults.action = "signin"

您还可以定义一个
模块\u IndexController::preDispatch()
用户\u AccessController::indexAction()
,它使用
\u forward
将请求发送到适当的“默认值”:

\u向前($action,$controller=null,$module=null,array$params=null)
:执行另一个操作。如果在
preDispatch()
中调用,则将跳过当前请求的操作,以支持新操作。否则,在处理当前操作后,将执行
\u forward()
中请求的操作


我曾考虑过在操作中写转发,但我正在尝试在操作中少编写代码,在配置文件中多做。在解决了链接我的路线的另一个问题之后,我将尝试ini样式:)和我发布的关于链接路线的另一个问题:谢谢。。
// delaing with the redirect in preDispatch
// will affect all requests to this controller
class User_IndexController extends Zend_Controller_Action {
  public function preDispatch() {
    // send to default location for User Module:
    $this->_forward('signin', 'auth')
  }
}

// dealing with the redirect in indexAction:
// will only affect requests that go to the "index" action
class User_AccessController extends Zend_Controller_Action {
  public function indexAction() {
    // send to default location for User Module:
    $this->_forward('check')
  }
}