#php #forms #symfony1 #render
#php #формы #symfony1 #визуализация
Вопрос:
когда я создал свою страницу indexSuccess.php я использовал инструкцию типа :
<?php echo $form['titre']->render();?>
это выдает мне ошибку при выполнении, например :
Notice: Undefined variable: form in C:wampwwwMyProjectappsfrontendmodulesaddAnnoncetemplatesindexSuccess.php on line 84
Fatal error: Call to a member function render() on a non-object in C:wampwwwMyProjectappsfrontendmodulesaddAnnoncetemplatesindexSuccess.php on line 84
что я могу сделать в качестве решения этой проблемы?
Комментарии:
1. Вы назначили форму шаблону, как
$form
в вашем действии:$this->form = new WhateverClassForm();
?
Ответ №1:
Когда вы автоматически генерируете модель doctrine, форма создается как частичная и внедряется в шаблоны создания и редактирования. Если вы проверите свои действия newSuccess, createSuccess, editSuccess, updateSuccess, вы обнаружите присвоение переменной form, упомянутое prodigitalson, поэтому эта ошибка там не появится.
Однако форма не становится автоматически доступной в indexSuccess, поскольку эта страница по соглашению об именовании должна использоваться для перечисления объектов. Нарушение соглашения может привести к некоторой путанице позже.
Еще один совет: если вы хотите создать экран, подобный серверной части symfony admin, где вы перечисляете все объекты вместе с формой для добавления / редактирования объектов, вы можете использовать generator .yml для автоматической генерации ваших представлений. Обязательно включите css, js и изображения из папки web / sf в каталог symfony
Ответ №2:
Итак, я нашел то, что искал. Я забыл добавить
$this->form = new addAnnonceForm();
в моем executeIndex (действие)
спасибо 🙂