В module.config.php
...
'may_terminate' => true,
'child_routes' => array(
'resetpassword' => array(
'type' => 'Literal',
'options' => array(
'route' => '/reset-password',
'defaults' => array(
'controller' => 'User\Controller\Index',
'action' => 'resetpassword',
),
),
),
)
...
И форма сброса пароля .phtml
<?php
$user_id = 1;
$token = 'ABCXYZ'
$form = $this->form;
$form->prepare();
$form->setAttribute('action', $this->url('user/resetpassword?user_id='.$user_id.'&token='.$token));
$form->setAttribute('id', 'reset-password-form');
?>
Если я установлю $form->setAttribute('action', $this->url('user/resetpassword'));
все в порядке, но когда установленный параметр имеет значение user_id с токеном => ошибка
Как это исправить?
Потому что первым аргументом помощника вида Url является имя маршрута. Если вы хотите добавить несколько параметров запроса, вы можете использовать третий аргумент ($options
— см документацию)
Пример:
$url = $this->url('user/resetpassword', [], ['query' => ['user_id' => $user_id]]);
Других решений пока нет …