В действии я хочу отправить параметры отправки в другое действие с помощью перенаправления.cakePHP3: Как отправить параметры в действие через redirect()?
Так как я прочитал это в документации (http://book.cakephp.org/3.0/en/controllers.html#redirecting-to-other-pages):
return $this->redirect(['action' => 'edit', $id]);
Я писал:
public function activate($user_id, $token) {
//.... of course $user->username is not null here
return $this->redirect(['action' => 'login', $user->username]);
//....
}
И в моих целевых действиях:
public function login($username = null) {
//...
debug($username); // just displays null
//...
}
я не делаю понять, есть ли проблема в redirect() или в login(). В любом случае отладка ($ this-> request) не отображает переданных параметров.
С уважением,
В чем проблема: имя пользователя не добавляется к сгенерированному URL-адресу или значение, которое не передается методу, хотя оно присутствует в URL-адресе? – ndm
Я действительно не знаю ndm, но он не отображается в URL-адресе, но я думаю, что имя пользователя не должно быть передано как querystring в любом случае, и я не вижу его в параметрах, поэтому я не переношу его вообще. – 2ndGAB
Ну, если имя пользователя не отображается в URL-адресе, то это первое. Он работает с жестко закодированной строкой, например '['action' => 'login', 'foobar']'? Я не могу думать, что это может быть причиной такого поведения, других недопустимых значений или противоречивых маршрутов. Поэтому, если он также не работает с жестко запрограммированной строкой, попробуйте удалить все, кроме маршрутов по умолчанию, также убедитесь, что у вас есть последняя версия CakePHP ('composer update'). – ndm