Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZendFramework]Problem z prostym formularzem
Forum PHP.pl > Forum > PHP > Frameworki
adolf1945
Witam. Mam problem z prostym formularzem w Zend FW:
Wywala mi błąd: Fatal error: Class 'Application_Form_Osoba' not found in C:\xampp\htdocs\osoba\application\controllers\IndexController.php on line 8

Proszę o pomoc.

Wersja FW: Zend Framewok 1.11.7

application/forms/Osoba.php
  1. <?php
  2.  
  3. class Application_Form_Osoba extends Zend_Form
  4. {
  5.  
  6. public function init()
  7. {
  8. $this->addElement('text','imie', array('label'=>'Imię: '));
  9.  
  10. $kontrolka = new Zend_Form_Element_Text('nazwisko', array('label'=> 'Nazwisko: '));
  11. $this->addElement($kontrolka);
  12.  
  13. $this->addElement('Submit', 'zatwierdz', array('label'=>'Przetworz formularz'));
  14. }
  15.  
  16.  
  17. }
  18.  


IndexController:
  1. <?php
  2.  
  3. class IndexController extends Zend_Controller_Action
  4. {
  5.  
  6. public function indexAction()
  7. {
  8. $this->view->form = new Application_Form_Osoba();
  9. }
  10.  
  11.  
  12. }


widok index.phtml
  1. <?php echo $this->form; ?>


Layout:
  1. <!DOCTYPE...>
  2. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
  3. <head>
  4. <title>Form</title>
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  6. </head>
  7. <body>
  8.  
  9. <?php echo $this->layout()->content; ?>
  10.  
  11. </body>
  12. </html>
  13.  
  14.  
  15.  


Bootstrap:
  1. <?php
  2.  
  3. class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
  4. {
  5.  
  6. }


Błąd który wyświetla to: Fatal error: Class 'Application_Form_Osoba' not found in C:\xampp\htdocs\osoba\application\controllers\IndexController.php on line 8
to ta linijka: $this->view->form = new Application_Form_Osoba();

Z góry dziękuje za każdą pomoc
amii
Spróbuj w kontrolerze dać:
require_once APPLICATION_PATH . '/forms/Osoba.php ';
adolf1945
Działa, dziękuję. Myślałem że jest to ustawione gdzieś automatycznie
amii
Nie jestem tego na 100% pewien ale w dokumentacji jeśli masz w application.ini

prefixPath.element.prefix = "My_Element"
prefixPath.element.path = "My/Element/"
elementPrefixPath.validate.prefix = "My_Validate"
elementPrefixPath.validate.path = "My/Validate/"
displayGroupPrefixPath.prefix = "My_Group"
displayGroupPrefixPath.path = "My/Group/"

To instancję klasy tworzysz w ten sposób:
$form = new My_Form_Login();

Mając klasę zdefiniowaną:
class My_Form_Login extends Zend_Form
Janusz1200
Zend autoloader powinien ładować pliki jak są we właściwych miejscach i właściwie nazwane bez ręcznego includowania.
(Być może trzeba sprawdzić, czy app path jest w php include).
Ja używam modułów i każdy moduł musi mieć własnego bootstrapa.
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.