2015-12-17 5 views
3

Я новичок в PHP, и я пытаюсь передать 2 целых числа из моего представления в мой контроллер. Я использую zend framework 2.Как передать несколько значений из представления в контроллер в PHP

Это то, как я пытался передать данные в свое действие в контроллере с помощью кнопки, но значения, которые я получаю в своем действии, равны 0, так что это неправильно, у меня есть ценности, которые не равны 0.

<td> 
     <?php $url = $this->url('mediador', array('action' => 'associaCorrespondencia', 'idCompra' => $Compra[$i]['ID'], 'idVenda' => $Venda[$i]['ID'])); ?> 
     <form action="<?php echo $url; ?>" method="post"> 
      <div> 
       <input type="submit" name="del" value="Associar" /> 
      </div> 
     </form> 
    <td> 

Вот как я получаю значение в моем действии:

public function associaCorrespondenciaAction(){ 

    $idCompra = $this->params()->fromRoute('idCompra', 0); 
    $idVenda = $this->params()->fromRoute('idVenda ', 0); 

} 

что я делаю неправильно? Значения, которые я получаю, всегда равны нулю и не являются теми же, которые я прошел через параметр. Спасибо заранее!

EDIT: Мой маршрут конфигурация:

<?php 

return array(
    'controllers' => array(
     'invokables' => array(
      'Mediador\Controller\Mediador' => 'Mediador\Controller\MediadorController', 
     ), 
    ), 


    // The following section is new and should be added to your file 
    'router' => array(
     'routes' => array(
      'mediador' => array(
       'type' => 'segment', 
       'options' => array(
        'route' => '/mediador[/:action][/:id]', 
        'constraints' => array(
         'action' => '[a-zA-Z][a-zA-Z0-9_-]*', 
         'id'  => '[0-9]+', 
        ), 
        'defaults' => array(
         'controller' => 'Mediador\Controller\Mediador', 
         'action'  => 'index', 
        ), 
       ), 
      ), 
     ), 
    ), 

    'view_manager' => array(
     'template_path_stack' => array(
      'Mediador' => __DIR__ . '/../view', 
     ), 
    ), 
); 
+0

Можем ли мы видеть ваше определение маршрута? Но, возможно, это должно быть '$ this-> params() -> fromQuery (..);' http://stackoverflow.com/a/12077127/3392762 – Progrock

+0

Обновлено сообщение с определением маршрута – sergiogomesdev

ответ

4

Вы используете хелпер URL вида Зенда:

http://framework.zend.com/manual/current/en/modules/zend.view.helpers.url.html

Для генерации строки запроса аргументов из помощник вида, необходимо назначить их как третий аргумент, используя ключ запроса следующим образом:

Смотреть URL-адрес генерации:

<?php 
$url = $this->url(
    'mediador', 
    array(
     'action' => 'associaCorrespondencia' 
    ), 
    array(
     'query' => array(
      'idCompra' => $Compra[$i]['ID'], 
      'idVenda' => $Venda[$i]['ID'] 
     ) 
    ) 
); 
?> 

Действие:

$idCompra = $this->params()->fromQuery('idCompra', 0); 
.... 
+0

Спасибо вам, что он работал хорошо ! – sergiogomesdev

Смежные вопросы