1

我有一个路由到自定义模块的 url。我在我的 Bootstrap.php 中添加了这一行

$router->addRoute('forum-board', new Zend_Controller_Router_Route(
        'forum-board', array('module' => 'admin', 'controller' => 'users', 'action' => 'forumdisplay')
    ));

路线运行良好!

但是,在我打电话时的论坛显示视图中:

<a href="<?= $this->url( array ( 'module' => 'admin', 
                'controller'=> 'users', 'action' => 'resetpass',
                'userid'=>$userid)); ?>">Reset</a>

它不呈现 URL。

当我打开与以下相同的页面时:

http://zfProj12.local/admin/users/forumdisplay

它呈现了正确的 url,但是在路由它们时,它并不像

http://zfProj12.local/forum-board

有什么修复吗?

4

1 回答 1

2

当您希望url()视图助手根据您定义的路由进行渲染时,您可以按名称引用路由(例如,在视图脚本中):

<a href="<?= $this->url(array('userid' => 'myuserid'), 'forum-board', true) ?>">Forum</a>

更新

您对 url 帮助程序的调用表明您希望路由接受用户 ID 参数,但路由定义本身没有占位符。也许路线应该定义为:

$router->addRoute('forum-board', new Zend_Controller_Router_Route(
    'forum-board/:userid', array(
         'module' => 'admin', 
         'controller' => 'users', 
         'action' => 'forumdisplay',
     )
));

然后,当您使用 for 的值调用 url 帮助程序时userid,该值将插入到生成的 url 中。

于 2012-07-25T14:07:58.407 回答