使用Zend_Controller_Router_Route并添加root后$ this => url中的问题

时间:2011-03-31 10:02:08

标签: zend-framework url

我把这段代码放在bootstrap文件中

//product category url managment
    $defaults = array('controller'=>'productcat' , 'action'=>'catinfo' );
    $productRoute = new Zend_Controller_Router_Route('productcat/:id/:title', $defaults);
    $router = $frontController->getRouter();
    $router->addRoute("productcat", $productRoute);

我把这段代码放在一个phtml文件中(布局中)

<a href="<?php echo $this->url(array( "controller"=>"aboutus" , "action"=>"index"));  ?>">about us</a>

但当我在这样的网址时:

http://quickstart.local/donyaye_fan_zend/public/ 一切都好。 如果我这样去网址:http://quickstart.local/donyaye_fan_zend/public/productcat/1/sample

关于aboutus的链接不起作用,它在href !!!中显示当前页面网址

是什么原因?!

2 个答案:

答案 0 :(得分:4)

您应指定要使用的默认路由。试试这个:

<a href="<?php echo $this->url(array( "controller"=>"aboutus" , "action"=>"index"), 'default');  ?>">about us</a>

如果无效,请尝试使用以下方法重置路线:

<a href="<?php echo $this->url(array( "controller"=>"aboutus" , "action"=>"index"), 'default', true);  ?>">about us</a>

答案 1 :(得分:2)

如果路由不同,最好为每个不使用自定义路由的链接指定路由“default”。

这样:

<a href="<?php echo $this->url(array( "controller"=>"aboutus" , "action"=>"index", "route"=>"default"));  ?>">about us</a>

应该有效