Même code, erreur dans l'un et pas dans l'autre !
Bonjour,
Je galère encore un peu dans les débuts avec le ZF !
Après avoir réalisé avec succès l'application du tutoriel "Débuter avec Zend Framework 1.5 (approche MVC)", je me lance dans ma vraie appli.
J'ai semble t-il le même code dans les deux mais j'ai une erreur dans mon appli :
Citation:
Fatal error: Call to a member function setLabel() on a non-object in /var/www/html/cinedoc/application/controllers/IndexController.php on line 24
La ligne 24 incriminée est celle-ci :
Code:
$form->submit->setLabel('Ajouter');
Le code du tuto qui fonctionne :
Code:
1 2 3 4 5 6 7 8 9 10 11
| // Dans IndexController.php
function ajouterAction()
{
$this->view->title = "Ajouter un nouvel album";
$form = new FormulaireAlbum();
$form->submit->setLabel('Ajouter');
// Dans FormulaireAlbum.php
$submit = new Zend_Form_Element_Submit('submit');
$submit->setAttrib('id', 'submitbutton'); |
Le code de mon appli qui ne fonctionne pas :
Code:
1 2 3 4 5 6 7 8 9 10
| // Dans IndexController.php
function ajouterAction()
{
$this->view->title = "Ajouter un pays";
$form = new FormulairePays();
$form->submit->setLabel('Ajouter');
// Dans FormulairePays.php
$submit = new Zend_Form_Element_Submit('submit');
$submit->setAttrib('id', 'submitbutton'); |
:arf:
Le message d'erreur doit être dû à autre chose mais je ne vois pas quoi.
Pour faire mon appli, j'ai suivi de nouveau le tuto en l'adaptant à mon besoin.
EDIT :
Comme je ne suis pas du genre à attendre la solution toute cuite, j'ai tapé le message d'erreur dans :google: qui m'a amené sur le tuto original in english et des messages faisant état de la même erreur... avec le vrai bug qui s'était glissé !
Comme j'ai davantage d'éléments dans mon formulaire que dans celui du tuto, j'ai remplacé $submit par un autre dans la liste des éléments ajoutés à cette ligne de FormulairePays :
Code:
$this->addElements(array($id, $pays_nom_francais, $pays_nationalite_masc, $pays_nationalite_fem, $pays_code, $pays_commentaire, $submit));
Si ça peut servir à d'autres...