如何在路由页面上使Url帮助器工作?

时间:2012-07-25 11:33:20

标签: php zend-framework url-routing

我有一个路由到自定义模块的网址。我在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>

它不会呈现网址。

当我打开同一页时:

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

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

http://zfProj12.local/forum-board

任何修复?

1 个答案:

答案 0 :(得分:2)

如果希望url()视图帮助程序根据您定义的路径进行渲染,则按名称引用路径(例如,在视图脚本中):

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

<强>更新

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

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

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