#routing #zend-framework2
#маршруты #zend-framework2
Вопрос:
В некоторых случаях я пытаюсь реализовать «перенаправление входа», например, на моем веб-сайте есть страница, доступная только для зарегистрированных пользователей.
На данный момент, когда гостевой пользователь переходит на эту страницу, гость перенаправляется на страницу входа в систему, я хочу, чтобы пользователь перенаправлял на ту же страницу после входа в систему.
Мой модуль входа в систему: http://samsonasik.wordpress.com/2012/10/23/zend-framework-2-create-login-authentication-using-authenticationservice-with-rememberme / и интегрировали этот код в контроллер «application / auth».
Когда я использую этот URL: www.qa-staging.com/hemaa/auth/login/redirect/http://google.com
Это дает мне ошибку 404.
при использовании: www.qa-staging.com/hemaa/auth/login/redirect/http://google.com тогда маршрутизация работает, но я думаю, что это не очень хорошая практика для достижения этой цели.
контроллер:
действие авторизации: вход
в систему param1: перенаправление
param2: url для перенаправления
'noModule' => array(
'type' => 'Segment',
'options' => array(
'route' => '/[:controller][/:action[/:param1[/:param2[/:param3]]]]',
'constraints' => array(
'controller' => '[a-zA-Z][a-zA-Z0-9_-]*',
'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
'param1' => '[a-zA-Z0-9_-]*',
'param2' => '(.) ',
'param3' => '(.) ',
),
'defaults' => array(
'__NAMESPACE__' => 'ApplicationController',
'controller' => 'Index',
'action' => 'index',
),
),
),
Есть идеи, как этого можно достичь?
Ответ №1:
Я думаю, вам следует рассмотреть возможность использования для этого параметра GET. Использование параметров маршрута ZF2 для такой функциональности — неправильный способ.
Таким образом, ваш запрос будет выглядеть примерно так:
www.qa-staging.com/hemaa/auth/login?redirect=http://google.com
Затем в ZF2 вы можете получить параметры перенаправления GET следующим образом:
$request = $serviceManager->get('Request');
$redirect = $request->getQuery('redirect');
А затем вы можете использовать его позже для управления перенаправлением, например, с помощью плагина перенаправления ZF2