login  Naam:   Wachtwoord: 
Registreer je!
 Forum

[ZF] de front controller (Opgelost)

Offline Stijn - 26/06/2007 20:06 (laatste wijziging 26/06/2007 20:52)
Avatar van StijnPHP expert Hallo

Ik ben dus bezig met het Zend Framework. Ik heb een volgend application structuur:

Citaat:
./application
./default
./controllers
./IndexController.php
./project
./controllers
./IndexController.php
....


Nu is het zo wanneer ik http://localhost/zend/index doe dat hij mooi de indexAction() uitvoert in mijn IndexController van de map default.

Wanneer ik echter naar http://localhost/zend/project ga wil geeft hij een error van kilometers lang die ik niet kan oplossen of niet weet hoe.

Citaat:
Fatal error: Uncaught exception 'Zend_Controller_Dispatcher_Exception' with message 'Invalid controller specified (error)'
Dit is een stukje van de error.

Ik heb de module mappen correct toegevoegd (Zend 7.7.), dus ik snap het niet want volgens de manual ben ik correct maar werkt het langs geen kanten.

http://www.plaatscode.be/5768/ - de index.php (bootstrap file)

Bedankt

10 antwoorden

Gesponsorde links
Offline marten - 26/06/2007 22:17 (laatste wijziging 26/06/2007 22:18)
Avatar van marten Beheerder De controllers zijn abstracte classes. Heb je tenminste 1 actie in die classes aangemaakt? Probeer de error eens beter weer te geven. Bijvoorbeeld met de volgende controller:

  1. <?php
  2. class MyController extends Zend_Controller_Action
  3. {
  4. public function __call($method, $args)
  5. {
  6. if ('Action' == substr($method, -6)) {
  7. // If the action method was not found, render the error template
  8. return $this->render('error');
  9. }
  10.  
  11. // all other methods throw an exception
  12. throw new Exception('Invalid method "' . $method . '" called');
  13. }
  14. }
  15. ?>


En post de totale foutmelding eens als je wilt.
Offline nemesiskoen - 26/06/2007 22:37 (laatste wijziging 26/06/2007 22:38)
Avatar van nemesiskoen Gouden medaille

PHP expert
Project is een dir maar zend denkt dat het een controller is... therefore geen extra mappen in die root knallen.
OF
projectcontroller bestaat niet/staat op de foutieve plaats
Offline Stijn - 26/06/2007 23:03
Avatar van Stijn PHP expert @marten: ik heb in iedere controller de actie indexAction() gemaakt.
@vage: raar, want ik heb dezelfde structuur overgenomen van de wiki en als ik hen mag geloven zou dit werken.

Ik zal eens de volledige error posten (even geduld).
Offline nemesiskoen - 26/06/2007 23:07
Avatar van nemesiskoen Gouden medaille

PHP expert
Ja maar ik kan voor geen botten aan die dir structuur uit. Staat dat allemaal in 1 / of staat dat onder elkaar?
Offline Stijn - 26/06/2007 23:09
Avatar van Stijn PHP expert @vage: ik zal een screenshot maken in zend studio, je zal het beter begrijpen dan.
Offline marten - 26/06/2007 23:09
Avatar van marten Beheerder ./application
---/default
------/controllers
----------./IndexController.php
--./project
-----./controllers
----------./IndexController.php

zo denk ik 
Offline nemesiskoen - 26/06/2007 23:12 (laatste wijziging 26/06/2007 23:12)
Avatar van nemesiskoen Gouden medaille

PHP expert
Ahja, ok, ja dat kon ik niet echt afleiden uit die beginpost, maar ik betwijfel het want dan kloppen die url's voor "genne zak".
Offline Stijn - 26/06/2007 23:22
Avatar van Stijn PHP expert http://www.eos-team.org/mindios/ -> default, zoals je ziet wordt hij goed aangeroepen
http://www.eos-team.org/mindios/project -> - Klik en zie de error

http://img469.imageshack.us/img469/5720/zfkw5.png , hier de structuur.
Offline nemesiskoen - 26/06/2007 23:24
Avatar van nemesiskoen Gouden medaille

PHP expert
Doe is /project/.
Ik ben niet bekend met dit probleem trouwens.
Offline Stijn - 26/06/2007 23:29 (laatste wijziging 26/06/2007 23:52)
Avatar van Stijn PHP expert http://www.eos-team.org/mindios/project/ , levert hetzelfde probleem op.

Maar op een forum heb ik gelezen dat het ligt aan de ViewRender. En als je
  1. $controller->setParam('noViewRenderer' , true);

gebruikt dan zou je die error niet meer zien. Dus voor de index (default) controller werkt dit inderdaad maar voor de modules dus niet en dat vind ik raar.

opgelost!
Citaat:
In this paradigm, the module name serves as a prefix to the controllers it contains. The above example contains three module controllers, 'Blog_IndexController', 'News_IndexController', and 'News_ListController'. Two global controllers, 'IndexController' and 'FooController' are also defined; neither of these will be namespaced. This directory structure will be used for examples in this chapter.

Dus ik moest in de IndexController.php van de module project gewoon die invullen:

  1. class Project_IndexController extends Zend_Controller_Action
en ik had volgende eerst geschreven:
  1. class IndexController extends Zend_Controller_Action


Good night 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.214s