Проблема с параметрами URL

Я работаю над формой поиска, в которой я хотел бы разместить искомые значения в URL. У меня проблемы с получением URL, чтобы включить параметры, однако. Они будут публиковаться, если я введу значения в представлении (если вместо $ this-> search_zip я наберу ‘12345’). В настоящее время поиск работает как нужно, кроме URL. В настоящее время я получаю условия поиска из формы. Нужно ли менять настройки контроллера, чтобы получить их из URL-адреса? Если это так, как бы я отфильтровать?

В конечном счете я хотел бы, чтобы мой URL читал:

Результаты / 12345 / otherparam

Я сейчас получаю

Результаты

Независимо от того, какие переменные я ввожу в форму.

Модуль Конфиг

return array(
'router' => array(
'routes' => array(
'home' => array(
'type' => 'segment',
'options' => array(
'route'    => '/',
'constraints' => array(
'action'     => '[a-zA-Z][a-zA-Z0-9_-]*',
),
'defaults' => array(
'controller' => 'Application\Controller\Index',
'action'     => 'index',
),
),
'may_terminate' => true, //START OF CHILD ROUTES
'child_routes' => array(
'results' => array(
'type' => 'segment',
'options' => array(
'route' => 'results[/:search_zip][/:search_industry]',
'defaults' => array(
'controller' => 'Application\Controller\Index',
'action'     => 'results',

Просмотр результатов

$form->setAttribute('action', $this->url(
'home/results',
array(
'action' => 'results',
'search_zip'=> $this->search_zip,
'search_industry' => 'industry_name'

echo $this->formRow($form->get('industry_name'));//this is the form field
echo $this->formSubmit($form->get('submit'));

контроллер

 //beginning of the results action
$request = $this->getRequest();
$form = new SearchForm($dbAdapter);
if ($request->isPost()) {
$search = new MainSearch();
$form->setInputFilter($search->getInputFilter());
$form->setData($request->getPost());
if ($form->isValid()) {

По окончании действия результатов я возвращаю форму и результаты (по примеру альбома)

     return array(
'form' => $form,
'pros' => $fetchPros,
);

Спасибо,
M

0

Решение

//This will give you an array containing your desired parameters
$params = $this->params()->fromRoute();
//Then you can simply use them like this
$search_zip = $params['search_zip'];
$search_industry  = $params['search_industry'];
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]