Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour !
J'utilise le Zend Framework comme framework pour un projet, et je désire que l'URL que le routeur analyse pour en tirer le contrôleur et l'action soit dans un paramètre GET (que j'ai nommé u).
J'ai tenté de le faire ainsi : ($front contient l'objet de Zend_Controller_Front) :
[lang=php] <?php $url = isset($_GET['u']) && !empty($_GET['u']) ? $_GET['u'] : 'index.html'; $request = new Zend_Controller_Request_Http(BASE_URI . $url); $front->setRequest($request); ?>
Il faut peut-être aussi savoir comment la constante BASE_URI est définie :
[lang=php] <?php $base_uri = 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['PHP_SELF']; $base_uri = str_replace('index.php', '', $base_uri); $base_uri = str_replace('ajax.php', '', $base_uri); $base_uri = str_replace('cron.php', '', $base_uri); define('BASE_URI', $base_uri, true); ?>
Mais le contrôleur n'est pas trouvé (Zend me dirige vers le contrôleur error et l'action du même nom).
Donc le problème est-il ici ?
Merci d'avance pour vos réponses !
Hors ligne
Bonjour,
Tout cela me parrait un peu obscure !
Est ce que tu as creusé du coté de l'aide d'action forward ?
Cordlmt
Hors ligne
Je trouve ça particulier mais tu dois avoir une bonne raison de vouloir faire ainsi, ce que tu peux faire c'est comme le dit EffigieCreations récupérer le parametre passé dans l'url si il est défini tu faire un forward vers l'action voulu sinon tu forward vers l'index...
Tu peux nous en dire plus sur le pourquoi tu veux faire ainsi?
Hors ligne
En fait, je réalise un CMS et je désire que la compatibilité soit maximale, y compris avec les hébergeurs n'ayant pas activé l'URL Rewriting et ceux qui n'utilisent pas Apache (je pense à ISS, Zend Server, et autres).
Voilà pourquoi .
Édition : Je vous remercie pour votre aide. J'ai un peu regarder la liste des aides d'actions, et je croit que Redirector me conviendra .
Dernière modification par J-C Bubbendorf (21-04-2011 20:21:40)
Hors ligne
...ou pas
Ayant regardé de plus près, non, car il réclame, en plus du nom de la route (ce qui n'est pas un problème) ses paramètres, ce qui ne me va pas...
Peut-on instancier directement le routeur et obtenir à partir d'une URL contrôleur, action et paramètres ? Ou y as-t-il une autre solution ?
Merci d'avance .
Hors ligne
Pages: 1