J'essaie de créer un système de connexion avec Zend que lorsqu'un utilisateur essaie d'accéder à une page restreinte, ils seront pris à une page de connexion si elles sont aren Je ne suis pas connecté. Le problème que je rencontre est d'obtenir l'URL à laquelle ils essayaient d'accéder auparavant. Y at-il une fonction Zend qui retournera tout après l'URL de base? Par exemple, j'ai besoin de "nomModule/NomContrôle/NomAction/param1/valeur1/param2/valeur2" etc. pour être envoyé en tant que paramètre querystring à la page de connexion (ex: login /? Redirect = nom_strateur/nom_action/param1/valeur1/param2/value)Zend - Obtenir tout après base Url (Contrôleur, Action, et tous les paramètres)
Je peux obtenir le nom du contrôleur et de l'action, et j'obtiens les paramètres, mais il inclut également le module, le contrôleur et l'action. Je voudrais juste obtenir ce dont j'ai besoin. Je travaille sur le long chemin de le faire comme ceci:
$controllerName = Zend_Controller_Front::getInstance()->getRequest()->getControllerName();
$actionName = Zend_Controller_Front::getInstance()->getRequest()->getActionName();
$paramArray = Zend_Controller_Front::getInstance()->getRequest()->getParams();
$params = '';
foreach($paramArray as $key => $value)
$params .= $key . "/" . $value;
$this->_redirect('/admin/login/?redirect=' . $controllerName . "/" . $actionName . "/" . $params);
mais même alors je me retrouve avec params comme module/admin/contrôleur/index/etc que je ne veux pas. Alors, comment puis-je obtenir tout comme une chaîne comme dans l'URL ou au moins juste les paramètres d'une chaîne sans le contrôleur et l'action en tant que valeurs param?
** EDIT: Voici ma solution actuelle, mais il se doit d'être une façon plus élégante de le faire **
$moduleName = $this->getRequest()->getModuleName();
$controllerName = $this->getRequest()->getControllerName();
$actionName = $this->getRequest()->getActionName();
$paramArray = $this->getRequest()->getParams();
$params = '';
foreach($paramArray as $key => $value)
if($key <> "module" && $key <> "controller" && $key <> "action")
$params .= $key . "/" . $value . "/";
$this->_redirect('/admin/login/?redirect=' . $moduleName . "/" . $controllerName . "/" . $actionName . "/" . $params);
Cela semble être un bon candidat, mais il renvoie également la baseUrl. Est-il possible de tout simplement commencer par/moduleName/controllerName/nomaction/param1/valeur1/param2/valeur2 ?? – Ryan
Pour obtenir tout après la baseUrl, je n'ai pas de solution en main. Dans ma situation, après la connexion, je prends simplement l'URI complète et la redirige comme suit: '$ this -> _ redirect ($ full_url, array ('prependBase' => false));' ' Cela aide-t-il? –
Hey Derek, je n'étais pas au courant que _redirect a pris ce tableau d'options avec l'option prependBase. C'est bon à savoir, merci. Pour l'instant, j'ai tout configuré comme mentionné dans mon édition ci-dessus, mais peut passer à cela à un moment donné. Merci. – Ryan