Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZF] Nie działają akcje inne niż index
Forum PHP.pl > Forum > PHP > Frameworki
rudolf35
Witam, rozpoczynam przygodę z zend frameworkiem i natchnąłem się na pierwszy problem. Mogę tworzyć nowe kontrolery, ale nie działają w nich akcje inne niż index. W internecie jest parę wątków z tym problemem, ale żaden z nich nie pomógł. Dlatego zakładam nowy. Apllikacje piszę zgodnie z samouczkiem zenda, więc jeśli chodzi o nazwy klas, plików oraz ich położenie jest ok.

Mój htaccess:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

Konfiguracja Virtual hosta:
Kod
<VirtualHost 127.0.0.1:80>
    ServerAdmin webmaster@localhost

    DocumentRoot /var/www
    <Directory />
        Options FollowSymLinks
        AllowOverride All
    </Directory>
    <Directory /var/www/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/access.log combined

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>
<VirtualHost 127.0.0.2:80>
    ServerName quickstart.local
    DocumentRoot /var/www/PhpProject1/public

    <Directory /var/www/PhpProject1/public>
        DirectoryIndex index.php
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>


public/index.php

  1. <?php
  2.  
  3. // Define path to application directory
  4. defined('APPLICATION_PATH')
  5. || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application'));
  6.  
  7. // Define application environment
  8. defined('APPLICATION_ENV')
  9. || define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production'));
  10.  
  11. // Ensure library/ is on include_path
  12. set_include_path(implode(PATH_SEPARATOR, array(
  13. realpath(APPLICATION_PATH . '/../library'),
  14. )));
  15.  
  16. /** Zend_Application */
  17. require_once 'Zend/Application.php';
  18. // Create application, bootstrap, and run
  19. $application = new Zend_Application(
  20. APPLICATION_ENV,
  21. APPLICATION_PATH . '/configs/application.ini'
  22. );
  23.  
  24. $application->bootstrap()
  25. ->run();


Błąd jaki mi się wyświetla przy wpisaniu adresu do akcji 127.0.0.2/categories/new/

An error occurred
Application error


KrzysiekWildfire
W pliku application.ini zmień poniższe trzy wartości tak aby miały wartość 1:

phpSettings.display_startup_errors = 0
phpSettings.display_errors = 0
resources.frontController.params.displayExceptions = 0

wtedy wyrzuci Ci wszystkie błędy. Powiedz jeszcze z jakiego serwera korzystasz - jeżeli siedzisz na windowsie i używasz wamp serwer, to musisz włączyć mod rewrite - bo standardowo jest wyłączony.
rudolf35

An error occurred
Application error
Exception information:

Message: script 'categories/new.phtml' not found in path (/var/www/PhpProject1/application/views/scripts/)
Stack trace:

#0 /var/www/PhpProject1/library/Zend/View/Abstract.php(876): Zend_View_Abstract->_script('categories/new....')
#1 /var/www/PhpProject1/library/Zend/Controller/Action/Helper/ViewRenderer.php(897): Zend_View_Abstract->render('categories/new....')
#2 /var/www/PhpProject1/library/Zend/Controller/Action/Helper/ViewRenderer.php(918): Zend_Controller_Action_Helper_ViewRenderer->renderScript('categories/new....', NULL)
#3 /var/www/PhpProject1/library/Zend/Controller/Action/Helper/ViewRenderer.php(957): Zend_Controller_Action_Helper_ViewRenderer->render()
#4 /var/www/PhpProject1/library/Zend/Controller/Action/HelperBroker.php(277): Zend_Controller_Action_Helper_ViewRenderer->postDispatch()
#5 /var/www/PhpProject1/library/Zend/Controller/Action.php(523): Zend_Controller_Action_HelperBroker->notifyPostDispatch()
#6 /var/www/PhpProject1/library/Zend/Controller/Dispatcher/Standard.php(295): Zend_Controller_Action->dispatch('newAction')
#7 /var/www/PhpProject1/library/Zend/Controller/Front.php(954): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http))
#8 /var/www/PhpProject1/library/Zend/Application/Bootstrap/Bootstrap.php(97): Zend_Controller_Front->dispatch()
#9 /var/www/PhpProject1/library/Zend/Application.php(366): Zend_Application_Bootstrap_Bootstrap->run()
#10 /var/www/PhpProject1/public/index.php(26): Zend_Application->run()
#11 {main}

Request Parameters:

array (
'controller' => 'categories',
'action' => 'new',
'module' => 'default',
)


Mam postawiony serwer zend server na ubuntu. mod_rewrite mam włączony.
mat-bi
Nie wiedziałem, że angielski gryzie:

Message: script 'categories/new.phtml' not found in path (/var/www/PhpProject1/application/views/scripts/)
rudolf35
Sory, zapomniałem dopisać, że ten plik się tam znajduje, więc nie wiem dlaczego taki błąd...

Problem rozwiązany. Zmieniłem nazwę na taką samą i zatrybiło. Sorki chłopaki za kłopot. 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.