FormComponent — передача объекта с формой в шаблонPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 FormComponent — передача объекта с формой в шаблон

Сообщение Anonymous »

Предположим, у меня есть отношение один ко многим:
  • Компания может владеть несколькими изображениями
    < li>У меня есть сущность компании и сущность изображения
Теперь я хочу отобразить все изображения компании в шаблоне. И я также хочу сделать эти изображения редактируемыми напрямую. Я подумал о том, чтобы добавить форму к каждой сущности DoctrineArrayCollection и передать ее в шаблон. В шаблоне, если кто-то нажимает на изображение, соответствующее изображение должно исчезнуть, у него должна быть возможность редактировать описание изображения и передавать его через ajax на контроллер.

В моем объект, я добавил поле без аннотаций:

Код: Выделить всё

    private $form;

public function setForm(MyPictureForm $form)
{
$this->form = $form;
}

public function getForm()
{
return $this->form;
}
Теперь в моем контроллере я добавляю экземпляр формы к каждому изображению компании:

Код: Выделить всё

     //office images with forms
$officeImages = array();
foreach($company->getOfficeImages() as $image)
{
$form = $this->get('companybundle.imagedescription.form.factory')->createForm();
$form->setData($image);
$image->setForm($form->createView());
array_push($officeImages, $image);
}

return $this->render('CompanyBundle:Company:Show/show.html.twig', array(
'company'         => $company,
'officeImages'    => $officeImages
));

}
И в моем шаблоне я визуализирую это следующим образом:

Код: Выделить всё

           {% for image in officeImages %}
[url=#]

{% if image.image %}
[img]{{ vich_uploader_asset(image, [/img]
                             alt="{% if image.description %}{{ company.description }}{% endif %}"/>
{% else %}
{% image '@UserBundle/Resources/public/img/nopic_logo.jpg' output='/images/nopic_logo.jpg' %}
[img]{{ asset_url }}[/img]
{% endimage %}
{% endif %}

[/url]
{{ form(image.form) }}
{% else %}
Es sind noch keine Images vorhanden
{% endfor %}
В конце есть множество JavaScript-материалов, которые управляют появлением/исчезновением формы и ее отправкой.

Правильно ли так поступить в моем случае? Я думаю, не потому ли, что передача формы для каждого изображения кажется накладной?

Причина, по которой я работаю с формами, а не просто передаю данные из поля ввода, добавленного вручную, заключается в том, что csrf и разумное использование компонента формы.

Подробнее здесь: https://stackoverflow.com/questions/228 ... o-template
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»