Как разрешить уведомление: Неопределенная переменная: форма …?

#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 (действие)

спасибо 🙂