2011-06-28 5 views
0

Dans mon public/index.php je définis le chemin comprennent:formulaire Zend Framework ne se trouve pas

// Ensure library/ is on include_path 
set_include_path(implode(PATH_SEPARATOR, array(
    '/var/www/php_include/zend/1.11.7/library', 
    '/var/www/php_include/application', 
    get_include_path(), 
))); 

Dans mon IndexController je veux faire référence à mon formulaire avec

new Form_Login(); 

Mais là, je reçois l'erreur:

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

Form est sous application/forms/Login.php:

class Form_Login extends Zend_Form 
{ 
    public function init() 
    { 

get_include_path() avant d'utiliser new LoginForm() lancers francs:

/var/www/php_include/application/../library:/var/www/php_include/zend/1.11.7/lib‌​rary:/var/www/php_include/application:/var/www/php_include/application/forms:.:/v‌​ar/www/php_include:/usr/share/pear/PEAR

Tout le monde sait comment obtenir ce travail?

+0

Pourriez-vous ajouter la définition de votre LoginForm? – Phliplip

+0

Je l'ai ajouté .. – frgtv10

Répondre

2

Le chargeur automatique ne le trouvera pas me sphynx. Ajoutez simplement votre chemin forms/ à votre chemin d'inclusion.

// Ensure library/ is on include_path 
set_include_path(implode(PATH_SEPARATOR, array(
    '/var/www/php_include/zend/1.11.7/library', 
    '/var/www/php_include/application', 
    '/var/www/php_include/application/forms', 
    get_include_path(), 
))); 

Maintenant Renommez le fichier LoginForm.php et votre nom de classe à LoginForm

Utilisez ensuite

new LoginForm(); 

Ceci est exactement la même manière que je l'ai fait avec mes projets, sauf mes formes -dir est placé dans les vues et le includepath est défini avec application.ini

Mise à jour

Cela fait partie de ma classe Bootstrap:

function _initAutoloader() { 
    $autoloader = Zend_Loader_Autoloader::getInstance(); 
    $autoloader->setFallbackAutoloader(true); 
    return $autoloader; 
} 
+0

bon essayer, mais le problème existe encore:/ – frgtv10

+0

Ensuite, vous ne l'avez pas fait correctement;) – Phliplip

+0

forme est sous "forms/LoginForm.php" et en commençant par "class LoginForm extends Zend_Form ". Ajouté "/ var/www/php_include/application/forms" à public/index.php. En utilisant "new LoginForm();" pour l'obtenir ... toujours -> Erreur fatale: Classe 'LoginForm' introuvable dans /var/www/php_include/application/controllers/LoginController.php à la ligne 31 – frgtv10

1

votre classe devrait être appelée Form_LoginForm être trouvée par l'autochargeur.

Mais vous devez le changer pour Form_Login et forms/Login.php

+0

Modifié en "class Form_Login" et renommé en /forms/Login.php ne fonctionne pas:/ – frgtv10

+0

Le répertoire 's' dans les formulaires ne va-t-il pas gâcher les choses? Que faire si vous renommez 'formes /' en 'forme /'? – Phliplip

+0

n'a pas d'importance. même problème. – frgtv10

0

essayer

new Default_Form_LoginForm(); 
+0

Toujours pas trouvé. – frgtv10

+0

convenu avec l'auteur précédent, afficher le code de définition LoginForm – heximal

Questions connexes