Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zend Framework
Forum PHP.pl > Forum > PHP
1maciek
Witam,
napisałem małą aplikację przy użyciu Zend Framework i pojawia się problem,
mój IndexController.php wygląda tak:
  1. <?php
  2. class IndexController extends Zend_Controller_Action {
  3.  
  4. public function indexAction() {
  5. $view = Zend::registry('view');
  6. echo $view->render('IndexView.php');
  7. }
  8.  
  9. public function noRouteAction() {
  10. $view = Zend::registry('view');
  11. echo $view->render('NoRouteView.php');
  12. }
  13. }
  14. ?>


oczywiście stworzyłem proste widoki dla każdej akcji.
Problem polega na tym, że co bym nie wpisał w adresie sciezka/ , czy sciezka/index , czy sciezka/index.php zawsze uruchamiana jest akcje noRouteAction, czym to jest spowodowane, może obsługa mod_rewrite nie działa poprawnie? W httdp.conf:
usunąłem # przez LoadModule rewrite_module modules/mod_rewrite.so
i w sekcji <Directory "sciezka do DocumentRoot"> ustawiłem AllowOverride na All

.htaccess wygląda tak:
RewriteEngine on
RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php

Z góry wielkie dzieki za każdą pomoc!
cyphelf
Witam,

Pokaż jeszcze bootstrapa, pełny URL jaki wywołujesz i podaj numer wersji ZF.
1maciek
Nie wiem co się kryje pd nazwą bootstrap, ale domyslam się że chodzi o index.php (plik główny alikacji)

  1. <?php
  2. ini_set('include_path', ini_get('include_path').PATH_SEPARATOR.'library');
  3. include('Zend.php');
  4.  
  5. function __autoload($class) { Zend::loadClass($class); }
  6.  
  7. $controller = Zend_Controller_Front::getInstance();
  8. $controller->setControllerDirectory('application/controllers');
  9.  
  10. $view = new Zend_View();
  11. $view->setScriptPath('application/views');
  12.  
  13. Zend::register('view', $view);
  14.  
  15. $controller->dispatch();
  16. ?>


URL: http://localhost/maciek/zendtest/ (używam xamppa)

wersja ZF 0.1.5

dzięki za pomoc
cyphelf
Z tego co pamiętam to standardowy router nie działa dobrze, gdy plik ładujący (index.php) nie znajduje się w głównym katalogu serwera. Spróbuj użyć routera RewriteRouter:

  1. <?php
  2. $router = new Zend_Controller_RewriteRouter();
  3.  
  4. $controller = Zend_Controller_Front::getInstance();
  5. $controller->setControllerDirectory('application/controllers');
  6. $controller->setRouter($router);
  7. $controller->dispatch();
  8. ?>
1maciek
Działa, wielkie dzieki, pozdrawiam
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.