Вы спрашиваете об этом, потому что вы используете POST и, следовательно, URL не включает параметры поиска, как это было бы через GET?
Я использую следующую парадигму дизайна для поиска во всех создаваемых мной приложениях.
- Форма поиска отправляется как POST.
- В действии контроллера, если форма отправляется как публикация, я извлекаю параметры поиска, а затем перенаправляю на URL-адрес, который включает (именованные *) параметры.
Таким образом, код действия может выглядеть примерно так:
function search() {
if($this->RequestHandler->isPost()) {
// let's say we extract parameters called $a and $b here
$this->redirect(array(
'action' => 'search',
'a' => $a,
'b' => $b
)
exit();
)
// perform the normal search operation
// the 'a' and 'b' parameters can be accessed in the $this->params['named']
// array, automatically extracted by the CakePHP router using the configuration below.
}
Что касается именованных параметров, я бы настроил это в моих маршрутах. Php:
Router::connectNamed(array('a', 'b'));
Это приводит к перенаправлению выше, создавая красивый, чистый URL, например:
http://example.com/controller/search/a:FOO/b:BAR