在没有查询字符串的情况下添加用于过滤结果的表单,同时坚持Zend URL结构

时间:2012-08-01 12:29:47

标签: zend-framework

假设路由/ URL结构,如

http://www.example.com/vehicles/manage

此页面列出了数据库中的车辆。如果我想添加一个用于过滤结果的表单,例如颜色,我最终会得到一个过滤形式GET操作添加查询字符串的URL,例如。

http://www.example.com/vehicles/manage?colour=blue

当我真的想坚持网址结构时

http://www.example.com/vehicles/manage/colour/blue

我不希望在我的应用程序中的任何地方都有查询字符串,但是在管理界面中有无数个例​​子,其中必须过滤列表结果以使其可管理。任何替代解决方案都非常受欢迎。

由于

1 个答案:

答案 0 :(得分:0)

您可以使用重定向器操作助手来实现此目的。

用它实例化:

  

$ redirector = new Zend_Controller_Action_Helper_Redirector();

然后只需将你的模块/ controller / action / params传递给它:

  

返回$ redirector-> direct('manage','vehicles','default',$ params));

$params将包含您的过滤器,例如:

  

array('color'=>'blue','wheel_trims'=>'合金');

希望有所帮助:>

编辑:哦,要在manageAction()中获取您的值,请执行以下操作:

  

$ request = $ this-> getRequest();
  $ params = $ request-> getParams();