Zend Framework一条路由到多个控制器

时间:2012-08-22 12:31:41

标签: php zend-framework

我是Zend Framework的新手,我遇到路线问题 我想做这样的事情:

  • http://localhost/category/
    转到没有页面和城市参数的类别控制器

  • http://localhost/category/page/
    转到带有页面参数且没有城市参数的类别

  • http://localhost/category/city/
    转到带有city参数且没有页面参数的类别控制器

  • http://localhost/category/city/page/
    转到带有城市和页面参数的类别控制器

  • http://localhost/city/
    转到没有页面参数的城市控制器

  • http://localhost/city/page/
    使用页面参数

  • 转到城市控制器

P.S。页面是paginator param 我想做的是这样的事情:

localhost/phones/new-york/2 gets second page products form category phones and city New York
localhost/phones/2 gets second page products form category from all cities
localhost/new-york/2 gets second page of all products form city New York and so on...

我可以在Zend Framework中使用标准路由实现这一点,还是编写自定义路由器?

是否可以在$this->url符号后传递?个可选参数?我的意思是这样的:

http://localhost/category/city?order_by=category-name&order_asc

1 个答案:

答案 0 :(得分:0)

URL帮助程序不会输出查询字符串参数,因为它们不是路由的一部分。您的选择是:

将它们包括在最后:

<a href="<?=$this->url(array('controller' => 'category', 'something' => 'city')?>?order_by=category-name&order_asc">Some link</a>

或更改路线以使用键/值对:

http://localhost/:controller/:something/*

然后,你可以这样做:

<a href="<?=$this->url(array('controller' => 'category', 'something' => 'city', 'order_by' => 'category-name', 'order_asc' => 1)?>">Some link</a>

将输出:

<a href="/category/city/order_by/category-name/order_asc/1">Some link</a>