0

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

В конце концов, я хочу, чтобы мой URL следующим образом:

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

В настоящее время я получаю

результаты

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

Модуль Config

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

' 'search_zip' => '$ this-> search_zip',' 'должен быть 'search_zip' => $ this-> search_zip, 'если это не единственная проблема, пожалуйста, не могли бы вы изменить свой вопрос, чтобы сделать проблему более ясной: чего вы ожидаете, и что вы получаете вместо этого? –

+0

Я обновил свой вопрос. Это не исправить. Я был там, возился и забыл обновить до публикации. Благодарю. – Matt

+0

Не могли бы вы показать нам больше массива маршрутов? – guessimtoolate

ответ

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']; 
Смежные вопросы