Установить параметр url при перенаправлении в zend framework v2
У меня есть следующий перенаправление script в моем контроллере (Zend Framework 2)
return $this->redirect()->toRoute('default', array(
'controller' => 'admin',
'action' => 'index'
));
В настоящее время перенаправление на localhost/zf2/public/admin/index
Как я могу перенаправить с дополнительным параметром?
Как
localhost/zf2/public/admin/index/update/1
или localhost/zf2/public/admin/index/page/2
Я пробовал это:
return $this->redirect()->toRoute('default', array(
'controller' => 'admin',
'action' => 'index'
'param' => 'updated/1'
));
Но перенаправляется на localhost/ttacounting/public/admin/index/updated%2F1
Ответы
Ответ 1
Этот рабочий пример.
Маршрут script
$this->redirect()->toRoute('myaccount', array(
'controller' => 'admin',
'action' => 'index',
'param1' =>'updated',
'param2'=>'1'
));
Затем, установив параметр в module.config.php
'myaccount' => array(
'type' => 'Segment',
'options' => array(
'route' => '/myaccount[/:action][/:param1][/:param2]',
'defaults' => array(
'controller' => 'Main\Controller\MyAccount',
'action' => 'index',
),
),
),
Это приведет вас к MyAccountController, indexAction с param1 = 'updated' и param2 = '1'.
Но в вашем примере примера действие должно быть обновлено с именем параметра "update" и значением параметра "1"
Ответ 2
Это работает для меня.
Маршрут:
'user_view' => array(
'type' => 'Segment',
'options' => array(
'route' => '/user/view[/:user_id]',
'defaults' => array(
'controller' => 'user',
'action' => 'viewUser',
),
),
), // End of user_view route
И перенаправление с контроллера:
return $this->redirect()->toRoute('user_view', array('user_id'=>$user_id));
Обратите внимание, что ключ Array в операторе перенаправления соответствует сегменту маршрута:
[/: user_id] = 'user_id' = > $user_id
Ответ 3
Этот оператор перенаправляет вас на localhost/приводит/edit/112345:
return $this->redirect()->toRoute('leads', array(
'action' => 'edit',
'id' => 112345
));
id - это параметр, который я ожидаю в editAction.
Надеюсь, что это поможет.
Ответ 4
Попробуйте этот маршрут вместо предыдущего
return $this->redirect()->toRoute('default', [
'controller' => 'admin',
'action' => 'index'
'updated' => '1'
]);
Ответ 5
Я попробовал некоторые из вышеупомянутых решений, но никто из них не работал на меня. Я пришел со следующим.
//Return to specific product pricing
return $this->redirect()->toRoute('showpricing', array('id' => $form_values['id']));
/* show pricing */
'showpricing' => array(
'type' => 'Zend\Mvc\Router\Http\Segment',
'options' => array(
'route' => '/product/showpricing[?id=:id]',
'defaults' => array(
'controller' => 'Product\Controller\Product',
'action' => 'showpricing',
)
)
),
Надеюсь, это поможет кому-то.
Ответ 6
Другой способ - передать его в качестве третьего параметра (проверенного на ZF3) вместо обновления маршрута:
$this->redirect()->toRoute('dashboard', [], ['query' => ['welcome' => 1]]);