2011-03-08 149 views
1

我有一个典型的Controller Action需要处理搜索结果并将搜索参数传递回用于分页链接的视图(因此分页保持搜索状态)。Zend Framework中的长GET参数

如果我的URL是这样的;

/default/search/index/query/foo+bar/when/today/sort/asc 

我可以像这样访问每个参数;

$this->_getParam('query') // returns 'foo bar' 

如果我想保留使用/搜索作为路由键/值参数的这种方式,我需要什么样的路由器使用(Zend_Controller_Router_Route_Regex,Zend_Controller_Router_Route_Route等),以及如何将我的ini文件进行配置?

我是否认为表单方法应该仍然是GET,即使它将构造搜索参数为?query = foo + bar & when = today & sort = asc?

+0

当心SQL注入。 – Htbaa 2011-03-08 14:03:57

回答

0

我应该这样做。

在控制器:

public function indexAction() 
{ 
    $this->view->params = array ('query' => 'foo bar', 'when' => 'today', 'sort' => 'abc'); 
} 

在视图:

<a href="<?php echo $this->url (array ('action' => 'search', 'params' => $this->params)) ?>">Link</a> 
+0

感谢您的建议。你会如何建议将其设置为路线? – Kevin 2011-03-08 23:03:16

+0

您是否使用自定义路线? – akond 2011-03-09 08:14:25

+0

是的,一般我会使用自定义路线。我不确定设置html表单的方法。应该是GET还是POST? – Kevin 2011-03-09 13:50:04