login  Naam:   Wachtwoord: 
Registreer je!
 Forum

[ZF] Modules (Opgelost)

Offline shibble - 13/09/2008 01:25 (laatste wijziging 13/09/2008 10:00)
Avatar van shibbleMySQL interesse Hallo,

ik stuit tegen het volgende probleem,
ik heb in de map applications een map modules daarin staan mijn modules (bv. default & nieuws).

in me bootstrap heb ikhet volgende staan:

  1. $controller = Zend_Controller_Front::getInstance();
  2. $controller->addModuleDirectory('./application/modules/');
  3.  
  4. $router = $controller->getRouter();
  5. $router->addRoute('nieuws', Zend_Controller_Router_Route('nieuws/:newsid', array('controller' => 'index', 'action' => 'read')));


in de modules mappen gebruik ik de standaard mvc structuur als die van ZF.

IndexController.php in de controllers map van de nieuws module:
http://shibble.pastebin.com/m76b3ca8e

als ik dan naar:
http://www.webcustoms.nl/zend_wcustoms/nieuws/1/
ga dan krijg ik de volgende error:

[error=php]
Fatal error: Uncaught exception 'Zend_Controller_Dispatcher_Exception' with message 'Invalid controller specified (error)' in /home/id1269/domains/webcustoms.nl/public_html/zend_wcustoms/library/Zend/Controller/Dispatcher/Standard.php:249 Stack trace: #0 /home/id1269/domains/webcustoms.nl/public_html/zend_wcustoms/library/Zend/Controller/Front.php(946): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http)) #1 /home/id1269/domains/webcustoms.nl/public_html/zend_wcustoms/index.php(83): Zend_Controller_Front->dispatch() #2 {main} thrown in /home/id1269/domains/webcustoms.nl/public_html/zend_wcustoms/library/Zend/Controller/Dispatcher/Standard.php on line 249
[/error]

terwijl hij lijn 15 van de indexcontroller zou moeten echooén

6 antwoorden

Gesponsorde links
Offline Wouser - 13/09/2008 13:31
Avatar van Wouser PHP interesse Vang de error eens op...
http://framewor...ption.html
Offline shibble - 13/09/2008 16:25
Avatar van shibble MySQL interesse ik maak nu gebruik van de errorhandler en krijg de volgende error in me content te zien:

Invalid controller specified (1)

Maargoed wat doe ik nu fout dan?

  1. - application
  2. - modules
  3. - default
  4. - controllers
  5. + IndexController.php
  6. + ErrorController.php
  7. - models
  8. + nieuws.php
  9. - views
  10. - filters
  11. - helpers
  12. - scripts
  13. - index
  14. + index.phtml
  15. - error
  16. + error.html
  17. - nieuws
  18. - controllers
  19. + IndexController.php
  20. - models
  21. + nieuws.php
  22. - views
  23. - filters
  24. - helpers
  25. - scripts
  26. - index
  27. + index.phtml
Offline Stijn - 13/09/2008 18:33
Avatar van Stijn PHP expert
  1. array('controller' => 'index', 'action' => 'read')

Je moet nog een waarde meegeven, namelijk de module.

  1. array('controller' => 'index', 'action' => 'read' , 'module' => 'nieuws')
Offline shibble - 13/09/2008 18:56
Avatar van shibble MySQL interesse Hmmm, de add route is nu:

  1. $router->addRoute('nieuws',
  2. new Zend_Controller_Router_Route('nieuws/:newsid',
  3. array('controller' => 'index',
  4. 'action' => 'view',
  5. 'module' => 'nieuws'
  6. )));


maar blijf de zelfde error krijgen...
Offline Stijn - 13/09/2008 21:10
Avatar van Stijn PHP expert Zet eens rond je $front->dispatch een try catch, je zal de fout wel vanzelf zien.

  1. ....
  2. try {
  3. $front->dispatch();
  4. } catch( Exception $e ) {
  5. echo $e->getMessage();
  6. }
Offline shibble - 14/09/2008 00:57 (laatste wijziging 14/09/2008 23:33)
Avatar van shibble MySQL interesse Invalid controller specified (1)

krijg dus nog steeds dezelfde fout wat doe ik fout =(!

UPDATE:

me routing ziet er nu alsvolgt uit:
  1. $router = $controller->getRouter();
  2. $router->addRoute('nieuws',
  3. new Zend_Controller_Router_Route('nieuws',
  4. array('controller' => 'index',
  5. 'action' => 'index',
  6. 'module' => 'nieuws'
  7. )))
  8. ->addRoute('nieuws',
  9. new Zend_Controller_Router_Route('nieuws/:nieuwsid',
  10. array('controller' => 'index',
  11. 'action' => 'view',
  12. 'module' => 'nieuws'
  13. )))
  14. ->addRoute('nieuws',
  15. new Zend_Controller_Router_Route('nieuws/archief',
  16. array('controller' => 'index',
  17. 'action' => 'archief',
  18. 'module' => 'nieuws'
  19. )));


waar ik achter ben gekomen is, als ik naar "/nieuws/nieuws/archief/" ga dan word de archiefaction van de indexcontroller van de nieuws module gebruikt, maar ga ik bijvoorbeeld naar "/nieuws/nieuws/2/" dan word de viewaction niet geladen... maar krijg ik de error: "Invalid controller specified (2)" ga ik naar "/nieuws/nieuws/" dan word de indexaction geladen wat doe ik fout?

en hoe kan ik ervoor zorgen inplaats "/nieuws/nieuws/" dat het "/nieuws/" word? heb al op google gezocht en veel dingen uitgeprobeerd maar krijg het niet goed

nu ben ik er net achtergekomen ga ik naar "/nieuws/nieuws/index/view/nieuwsid/2/" dan pas word de viewAction geladen.

Update #2:
Probleem is opgelost door de addRoute('nieuws', ....) te verandere per route de eerste gewoon nieuws de 2e nieuws_view en de 3e nieuws_archief daardoor heb ikhet werkend gekregen!

bedankt iedereen voor de hulp
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.25s