(Yaf >=1.0.0)
Yaf_Controller_Abstract::forward — Transfère la requête courante vers une autre action
$controller, string $action, ?array $parameters = ?): ?bool$module,$controller,$action,$parameters = ?Transfère la requête courante vers une autre action. La cible est déterminée à partir du nombre et du type des arguments :
action seul : transfère vers une autre action du contrôleur courant.controller et action : transfère vers un autre contrôleur.module, controller et action : transfère vers un autre module.parameters transporte les arguments d'invocation récupérables avec Yaf_Request_Abstract::getParam().Note:
Cette méthode ne bascule pas immédiatement vers l'action de destination ; la bascule a lieu une fois le flux courant terminé. Pour passer la main immédiatement, il faut sortir de la méthode d'action courante (retourner
falseindique également à Yaf de ne pas effectuer le rendu automatique de la vue courante).
moduleLe nom du module de destination. Si le module courant est fourni, il est utilisé tel quel.
controllerLe nom du contrôleur de destination.
actionLe nom de l'action de destination.
parametersLes arguments d'invocation de l'action de destination, récupérables avec Yaf_Request_Abstract::getParam().
Exemple #1 Exemple avec Yaf_Controller_Abstract::forward()
<?php
class IndexController extends Yaf_Controller_Abstract
{
public function indexAction() {
$logined = $_SESSION["login"];
if (!$logined) {
$this->forward("login", array("from" => "Index")); // transfère vers l'action login
return false; // ceci est important, cela termine le flux courant
// et indique à Yaf de ne pas effectuer le rendu automatique
}
// autres traitements
}
public function loginAction() {
echo "login, redirigé depuis l'action ", $this->_request->getParam("from");
}
}
?>Résultat de l'exemple ci-dessus est similaire à :
login, redirigé depuis l'action Index