ZF: Nur IndexController wird angezeigt

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • ZF: Nur IndexController wird angezeigt

    Hallo :) ,
    ich arbeite seit nicht allzu langer Zeit mit dem Zend Framework.
    Aber heute ist ein Problem aufgetreten:
    Es wird aus irgendeinem Grund andauernd nur der IndexController aufgerufen.
    Bootstrap:

    Quellcode

    1. <?php
    2. define('DIRSEP', DIRECTORY_SEPARATOR);
    3. define('BASE_PATH', dirname(dirname(__FILE__)).DIRSEP);
    4. require_once 'Zend/Loader/Autoloader.php';
    5. Zend_Loader_Autoloader::getInstance();
    6. $config = new Zend_Config_Ini(BASE_PATH.'application'.DIRSEP.'config/config.ini');
    7. error_reporting(E_ALL);
    8. $log = new Zend_Log(new Zend_Log_Writer_Stream(BASE_PATH.'application'.DIRSEP.'logs.txt'));
    9. $auth = Zend_Auth::getInstance();
    10. $frontcontroller = Zend_Controller_Front::getInstance();
    11. $frontcontroller->throwExceptions(true);
    12. $frontcontroller->setBaseUrl($config->app->baseurl);
    13. $frontcontroller->addModuleDirectory(BASE_PATH.'application'.DIRSEP.'models');
    14. $frontcontroller->addControllerDirectory(BASE_PATH.'application'.DIRSEP.'controllers');
    15. Zend_Layout::startMvc(array('layoutPath' => BASE_PATH.'application'.DIRSEP.'views'.DIRSEP.'layouts'));
    16. $view = new Zend_View();
    17. $view->addHelperPath(BASE_PATH.'application'.DIRSEP.'views'.DIRSEP.'helpers');
    18. $viewrenderer = new Zend_Controller_Action_Helper_ViewRenderer($view);
    19. Zend_Controller_Action_HelperBroker::addHelper($viewrenderer);
    20. try {
    21. $frontcontroller->dispatch();
    22. }
    23. catch(Exception $e) {
    24. print $e->__toString();
    25. $log->log( 'Fehler: '.$e->__toString(), Zend_Log::EMERG);
    26. }
    27. ?>
    Alles anzeigen


    IndexController:

    Quellcode

    1. <?php
    2. class IndexController extends Zend_Controller_Action
    3. {
    4. public function indexAction()
    5. {
    6. $layout = Zend_Layout::getMvcInstance();
    7. $layout->title = 'Index';
    8. $this->view->assign('artikel', 'Test');
    9. }
    10. }
    11. ?>
    Alles anzeigen


    LoginController:

    Quellcode

    1. <?php
    2. class LoginController extends Zend_Controller_Action
    3. {
    4. public function indexAction()
    5. {
    6. $layout = Zend_Layout::getMvcInstance();
    7. $layout->title = 'Login';
    8. $this->view->assign('artikel', 'Anderer Test');
    9. }
    10. }
    11. ?>
    Alles anzeigen



    Wenn ich die entsprechende Adresse mit login dran aufrufe wird immernoch der IndexController aufgerufen.
    In der Errorlog steht auch kein Fehler.
    ?(
  • Hi,

    also wenn du deineurl.de aufrufst gelangst du auf den Indexcontroller?
    Was passiert bei deineurl.de/ndex/index oder deineurl.de/login/index

    Du hast beim Frontcontroller die Module mit den Models vertauscht, die haben damit nichts zu tun.
    Module enthalten Controller, wobei das optional ist. Könnte auch sein, dass es daran liegt.

    Ansonsten htaccess mit den Rewrite Rules richtig eingerichet?

    Welches OS nutzt du?
  • vince schrieb:

    also wenn du deineurl.de aufrufst gelangst du auf den Indexcontroller?
    Was passiert bei deineurl.de/ndex/index oder deineurl.de/login/index

    Das gleiche.


    vince schrieb:

    Ansonsten htaccess mit den Rewrite Rules richtig eingerichet?

    Quellcode

    1. RewriteEngine on
    2. RewriteCond %{REQUEST_FILENAME} -s [OR]
    3. RewriteCond %{REQUEST_FILENAME} -l [OR]
    4. RewriteCond %{REQUEST_FILENAME} -d
    5. RewriteRule ^.*$ - [NC,L]
    6. RewriteRule ^.*$ index.php [NC,L]

    vince schrieb:

    Welches OS nutzt du?
    Vista
  • Und dann setzt mal in die beiden IndexActions der Controller ein dump ein und guck dir mal den Request an. Ob du wirklich in dem jeweiligen Controller gelandet bist.

    Quellcode

    1. Zend_Debug::dump($this->getRequest());



    Wenn das alles so richtig ist, dann füge mal einen Slash in deiner RewriteRule hinzu:

    Quellcode

    1. RewriteRule ^.*$ /index.php [NC,L]
  • vince schrieb:

    Und dann setzt mal in die beiden IndexActions der Controller ein dump ein und guck dir mal den Request an. Ob du wirklich in dem jeweiligen Controller gelandet bist.

    Quellcode

    1. Zend_Debug::dump($this->getRequest());

    url/login/index

    Quellcode

    1. object(Zend_Controller_Request_Http)#32 (14) {
    2. ["_paramSources:protected"] => array(2) {
    3. [0] => string(4) "_GET"
    4. [1] => string(5) "_POST"
    5. }
    6. ["_requestUri:protected"] => string(27) "/rt/public/login/index"
    7. ["_baseUrl:protected"] => string(31) "http://localhost/rt/public"
    8. ["_basePath:protected"] => NULL
    9. ["_pathInfo:protected"] => string(0) ""
    10. ["_params:protected"] => array(3) {
    11. ["controller"] => string(5) "index"
    12. ["action"] => string(5) "index"
    13. ["module"] => string(7) "default"
    14. }
    15. ["_aliases:protected"] => array(0) {
    16. }
    17. ["_dispatched:protected"] => bool(true)
    18. ["_module:protected"] => string(7) "default"
    19. ["_moduleKey:protected"] => string(6) "module"
    20. ["_controller:protected"] => string(5) "index"
    21. ["_controllerKey:protected"] => string(10) "controller"
    22. ["_action:protected"] => string(5) "index"
    23. ["_actionKey:protected"] => string(6) "action"
    24. }
    Alles anzeigen


    url/index/index

    Quellcode

    1. object(Zend_Controller_Request_Http)#32 (14) {
    2. ["_paramSources:protected"] => array(2) {
    3. [0] => string(4) "_GET"
    4. [1] => string(5) "_POST"
    5. }
    6. ["_requestUri:protected"] => string(27) "/rt/public/index/index"
    7. ["_baseUrl:protected"] => string(31) "http://localhost/rt/public"
    8. ["_basePath:protected"] => NULL
    9. ["_pathInfo:protected"] => string(0) ""
    10. ["_params:protected"] => array(3) {
    11. ["controller"] => string(5) "index"
    12. ["action"] => string(5) "index"
    13. ["module"] => string(7) "default"
    14. }
    15. ["_aliases:protected"] => array(0) {
    16. }
    17. ["_dispatched:protected"] => bool(true)
    18. ["_module:protected"] => string(7) "default"
    19. ["_moduleKey:protected"] => string(6) "module"
    20. ["_controller:protected"] => string(5) "index"
    21. ["_controllerKey:protected"] => string(10) "controller"
    22. ["_action:protected"] => string(5) "index"
    23. ["_actionKey:protected"] => string(6) "action"
    24. }
    Alles anzeigen



    vince schrieb:

    Wenn das alles so richtig ist, dann füge mal einen Slash in deiner RewriteRule hinzu:

    Quellcode

    1. RewriteRule ^.*$ /index.php [NC,L]

    Gemacht, kein Unterschied.


    Edit:
    Ich bin dem Fehler auf die schliche gekommen.
    Es lag am setBaseUrl bei der ich die Domain mit Pfad angegeben hab,
    aber ohne Domain dabei geht es nun.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Zendi ()