Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Salut !
J'aurais aimé trouvé la solution à mon problème de débutant seul mais je bloque sévère :
Donc à partir d'un tuto simple (http://g-rossolini.developpez.com/tutor … e=sommaire) je voudrais passer dans l'URL l'id de mon objet à modifier de cette manière :
<a href="<?php echo $this->url(array('controller'=>'exigence',
'action'=>'modifier', 'id'=>$ListeExigence->IdExigence));?>">Edit</a>
Dans mon url j'ai bien :
public/exigence/modifier/id/7
Mais j'obtiens : Invalid controller specified (modifier)
L'appel aux autres pages (ajouter,supprimer) se passe par contre sans problème (mais sans paramètre dans l'url ...)
Hors ligne
public c'est ton module exigence ton controller et modifier ton action ??
Hors ligne
Exigence mon controller et modifier mon action oui.
Après public c'est la racine de mon appli', et je suis dans le module default.
Hors ligne
Si tu utilises la config par défaut sa devrai marcher, après si tu utilises ton propre router il faut que tu regardes si tu repects bien cette structure /:controller/:action/* ou /exigence/:action/* ou encore /exigence/modifier/*
Sinon je ne vois pas trop... ou pi être avec ton bootstrap on pourrait mieux comprendre !!
Bon courrage
Hors ligne
Je précise que quand je ne met pas le paramètre id mais seulement :
<a href="<?php echo $this->url(array('controller'=>'exigence',
'action'=>'modifier'));?>">Edit</a>
ça roule bien et ca m'amène sur la page de modification, mais sans l'id à modifier aucun intérêt
Sinon oui mon boostrap (y'a pas mal de superflu j'aurais pu les virer mais au moins vous avez mon bootstrap entier) :
<?php error_reporting(E_ALL|E_STRICT); ini_set('display_errors', 1); date_default_timezone_set('Europe/Paris'); // mise en place des r�pertoires et chargement des classes set_include_path('.' . PATH_SEPARATOR . '.././library' . PATH_SEPARATOR . './application/default/models/' . PATH_SEPARATOR . './application/administration/models/' . PATH_SEPARATOR . get_include_path()); include "Zend/Loader.php"; Zend_Loader::registerAutoload(); // Chargement de la configuration $config = new Zend_Config_Ini('./application/config.ini', 'general'); $registry = Zend_Registry::getInstance(); $registry->set('config', $config); // Mise en place de la BDD $db = Zend_Db::factory($config->db); Zend_Db_Table::setDefaultAdapter($db); try{ // On lance le framework // On prend une instance du controlleur frontal $frontController = Zend_Controller_Front::getInstance(); $frontController->setRequest(new Zend_Controller_Request_Http()); // un bug relevé, actuellement cette ligne est obligatoire $frontController->throwExceptions(true); // Régler plusieurs répertoires de modules d'un seul coup : $frontController->setControllerDirectory(array( 'default' => './application/default/controllers', 'administration' => './application/administration/controllers', )); $router = $frontController->getRouter(); $router->addRoute( 'mod', new Zend_Controller_Router_Route(':module/:controller/:action/*') ); //print_r($frontController->getControllerDirectory() ); $frontController->setBaseUrl('/GGRM/public'); // Instanciation du moteur de rendu de la page (layout) Zend_Layout::startMvc(array('layoutPath'=>'./application/layouts')); /********** Extension pour firebug ***********/ $logger = new Zend_Log(); $writer = new Zend_Log_Writer_Firebug(); $logger->addWriter($writer); Zend_Registry::set('logger',$logger); $profiler = new Zend_Db_Profiler_Firebug('All DB Queries'); $profiler->setEnabled(true); $db->setProfiler($profiler); function fb($message, $label=null) { if ($label!=null) { $message = array($label,$message); } Zend_Registry::get('logger')->debug($message); } /********** Extension pour firebug ***********/ /********** Initialisation objet vue dojo ****/ $layoutView = Zend_Layout::getMvcInstance()->getView(); Zend_Dojo::enableView($layoutView); $layoutView->dojo()->setDjConfigOption('locale', 'fr'); $layoutView->dojo()->addStylesheetModule('dijit.themes.tundra'); /********** Installation Scienta bar ***********/ $debugBar = new Scienta_Controller_Plugin_Debug(array( 'database_adapter' => $db, // Zend_Db_Adapter_Abstract 'memory_usage' => true, 'collect_view_vars' => true)); $frontController = Zend_Controller_Front::getInstance(); $frontController->registerPlugin($debugBar); // On démarre ! $frontController->dispatch(); }catch (Exception $e){ // Si on a une erreur (exception), on l'affiche echo $e -> getMessage(); }
En espérant que ça vous aide à ... m'aider
Dernière modification par Marvine (22-05-2009 15:45:52)
Hors ligne
Si tu n'utilises pas les modules, je pense que ces lignes ne servent à rien :
$router = $frontController->getRouter(); $router->addRoute( 'mod', new Zend_Controller_Router_Route(':module/:controller/:action/*') );
Peut-être qu'en les enlevant ...
Hors ligne
Merci beaucoup pour la réponse DavidD, après avoir simplement enlevé ces lignes ... ça marche nickel !
Hors ligne