2010-01-23 2 views
0

У меня есть кое-что, что я пытаюсь сделать с ZF; У меня есть LoginController.php в application/controllers/ с class LoginController extends Zend_Controller_Action. В нем, у меня есть следующие:Zend Framework и LoginController с LoginForm

public function getForm() 
{ 
    return new LoginForm(array(
       'action' => '/login/process', 
       'method' => 'post', 
       )); 
} 

У меня есть LoginForm.php внутри application/forms/ что следующее:

class LoginForm extends Zend_Form 
{ 
+-- 38 lines: public function init()-------------------------------------------- 
} 

Теперь, когда я посещаю example.com/login, я получаю следующее:

Fatal error: Class 'LoginForm' not found in /var/application/controllers/LoginController.php on line 7

Мои application.ini по умолчанию ...

Что я делаю неправильно?

ответ

1

Проверьте файл bootstrap.php. Если вы используете стандартный автозагрузчик в там, вам нужно будет префиксом классы формы с Form_

Основная декларация заряжания должна выглядеть как-то так:

$autoloader = new Zend_Application_Module_Autoloader(array(
     'namespace' => '', 
     'basePath' => dirname(__FILE__), 
)); 

Так что, если это так, то ваша форма класс должен быть назван Form_LoginForm()

+0

Я использую проект по умолчанию из проекта создания zf.sh , поэтому, если он не включает автозагрузчик, то я тоже не ... Куда это пойти? –

0

Вы действительно создали класс LoginForm? Потому что это, если вы сделали это, не находится на вашем пути включения.

0

имя LoginForm путь_from_closest_include_path_LoginForm
Предполагая, что у вас есть файл LoginForm.php (обратите внимание на заглавные буквы).

+0

И если мой include_path выглядит следующим образом: 'строки (107)«/var/application/../library:/var/library:.:/usr/share/php:/usr/ доля/груша "'? –

+0

Предполагая, что/var/application/forms/является dir, тогда forms_LoginForm –

+0

Я скорректировал LoginForm.php на следующее: 'class forms_LoginForm расширяет Zend_Form' и изменил код на вызов forms_LoginForm. Я все еще получаю ту же ошибку :( –