Zend Framework 1 路由 * Adminurl 中的参数

Zend Framework 1 Routing * Params in Adminurl

我在解决 Zend Framework 1 中的变量 Adminurl 时遇到了问题。 该路线看起来不错并且应该可以工作,除非我提供参数。 感谢任何可以提供帮助的人。 为什么这行不通?

$adminpath 是简单的有效字符串。

'resources' => array(
    'router' => array(
        'routes' => array(
            'backend' => array(                 
                'route' => $adminpath.'/:module/:controller/:action/*'
            )
        )
    )
),

它returns:

http://localhost/cms/admin/AppB/update/activate/moduleName/AppCm

发生错误 找不到网页 异常信息:

消息:指定的控制器无效(管理员) 堆栈跟踪:

请求参数:

array (
  'controller' => 'admin',
  'action' => 'AppB',
  'update' => 'activate',
  'moduleName' => 'AppCm',
  'module' => 'App',
)      

您有两条相交的路线。他们都可以解析这个URL,但有人先解析,然后停止URL-识别过程。默认路由首先解析 URL 和 returns

'module' => 'App',
'controller' => 'admin',
'action' => 'AppB',

尝试把defaultRoute初始化

/* @var Zend_Controller_Router_Rewrite $router */
$router->addDefaultRoutes();
/*init of '/:module/:controller/:action/*' route*/

添加所有其他路由后。

有时直接从配置中调节路由优先级很重要。为此,您可以在路由配置中添加 priority 参数,例如:

'routes' => array(
    'backend' => array(                 
        'route' => $adminpath.'/:module/:controller/:action/*',
        'priority' => 555
    ),
 )

并在路由配置添加到路由器之前按优先级对配置进行排序($router->addConfig 调用)。 In ZF2 route priority param is native.