Я борюсь с этим в течение 2 часов. Я сумел создать маршрут с параметром (названный url
) как /login/url
:ZF2 Создайте маршрут, как «login? Url = foo»
'login' => array(
'type' => 'segment',
'options' => array(
'route' => '/login[/:url]',
'defaults' => array(
'controller' => 'my_controller',
'action' => 'login',
),
),
),
Однако я хотел бы иметь URL, который выглядит как /login?url=foo
. Я пробовал что-то вроде:
'route' => '/login[?url=:url]',
Но это не работает. Любая идея, как это сделать на Zend Framework 2?
Большое спасибо!
EDIT: Пытаться что-то еще, как:
// onBootstrap method --> redirect to login page with request url as param
$url = $router->assemble(
array('url', $e->getRequest()->getRequestUri()),
array('name' => 'login')
);
В контроллере (логин действия):
$request = $this->getRequest();
var_dump($request); exit;
Я не вижу запрошенной URL в любом месте ... любое предложение?
Только что отредактировал мое сообщение. Я пытаюсь сделать это по-своему, я не могу заставить его работать. Есть идеи? – DavidL
Вы можете получить доступ к параметрам запроса в своем контроллере с помощью '$ this-> params() -> fromQuery()'. Более того, чтобы сделать перенаправление, вероятно, это поможет использовать http://framework.zend.com/manual/current/en/modules/zend.mvc.plugins.html#redirect-plugin – marcosh
Спасибо за вашу помощь! Я сделал каждый шаг, указанный в документе: собрать маршрут, ввести местоположение и установить код состояния. Но все еще ничего в контроллере ... и документация очень плоха в том, как можно использовать '$ params' и' $ options' (параметры 'assemble'). – DavidL