Почему мой необязательный параметр / путь к symfony v2.8 был изменен на строку запроса и как мне с этим справиться? - PullRequest
0 голосов
/ 13 октября 2019

У меня есть веб-сайт на основе Symfony v2.8 / php, где одна страница передает несколько параметров на 2-ю страницу, но 2-я страница получает один из параметров в виде строки запроса, а не намеченный путь:

Предполагаемый URL:

https ։// symfony.dev.mysite.com/app_dev.php/myController/login/mysource//mulan

Полученный URL:

http ։// symfony.dev.mysite.com/app_dev.php/myController/resend/mysource? Username = mulan

Почему мой предполагаемый uri изменяется с пути, как и ожидалось, на строку запроса?

Как мне изменить мой код / ​​маршрут для получения требуемого URI? *

Вот код страницы вызова с предполагаемым URI:

//
// In the login page's uri, called in the next statement, the source and username are
// known, but the optional parameter loginDataTime isn't, because the user hasn't yet
// logged-in, is indicated by '//' in the path part of the uri.
//

return $this->redirect( 'http://symfony.dev.mysite.com/app_dev.php' .
                        '/myController/login/mysource' . '//' . 'mulan' );

Здесьэто оператор определения маршрута и функции вызываемой страницы для страницы входа в систему:

 /**
  * @Route("/myController/login/{mysource}/{loginDateTime}/{username}/{password}",
           defaults={"mysource"="","loginDateTime"="","username"="","password"=""})
  * login page.
  *
  * @return:    redirected page's response string.
  */
public function loginAction( $mysource, $loginDateTime, $username, $password ) { ... }

Вот сообщение об ошибке Symfony, в котором показан измененный URL:

No route found for "GET /MyController/login/source//mulan"
(from "http://symfony.dev.mysite.com/app_dev.php/myController/resend/mysource?username=mulan")
...