CakePHP идентификатор сеанса или другой метод для совместного использования результатов URL – рекомендации приветствуются

Я ищу предложения по разумному подходу Cake к созданию URL-адреса, основанного на идентификаторе сеанса, который я могу поделиться с другими, чтобы увидеть те же результаты поиска, которые я вижу на моем конце.

Я знаю в стандартном php, я бы просто получил идентификатор сеанса и передал его URL. Но я думаю, что у Cake, вероятно, есть метод или подход для этой точной вещи (моя догадка). Я еще не смог найти что-то конкретное.

Любые идеи относительно наилучшего подхода к этому с помощью методов Cake? Или мне нужно будет изобрести колесо?

Вы спрашиваете об этом, потому что используете POST, и, следовательно, URL-адрес не включает параметры поиска, как это было бы через GET?

Я использую следующую конструкторскую парадигму для поиска во всех приложениях, которые я создаю.

  1. Форма поиска отправляется как POST.
  2. В действии контроллера, если форма отправляется в виде сообщения, я извлекаю параметры поиска, а затем перенаправляю URL-адрес, который включает параметры (named *).

Таким образом, код действия может выглядеть примерно так:

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 

Я решил это:

 search ( ... ) { if ($this->RequestHandler->isPost()) { $this->Session->write('search_form_sess', $this->data); $initial_url = $ApplicantAge . '/' . $SpouseAge . '/' . $NumberChildren . '/' . $Vision . '/' . $Zip; $this->redirect(array('action' => 'search', $initial_url)); exit(); } ... 

}