我有一个路由到自定义模块的网址。我在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
任何修复?
答案 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中。