У меня есть веб-сайт на основе 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")