- Ein Unternehmen kann mehrere Bilder besitzen
< li>Ich habe eine Firmenentität und eine Bildentität
In meinem Entität Ich habe ein Feld ohne Anmerkungen hinzugefügt:
private $form;
public function setForm(MyPictureForm $form)
{
$this->form = $form;
}
public function getForm()
{
return $this->form;
}
Jetzt füge ich in meinem Controller eine Formularinstanz zu jedem Bild des Unternehmens hinzu:
//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
));
}
Und in meiner Vorlage rendere ich es so:
{% for image in officeImages %}
{% if image.image %}
alt="{% if image.description %}{{ company.description }}{% endif %}"/>
{% else %}
{% image '@UserBundle/Resources/public/img/nopic_logo.jpg' output='/images/nopic_logo.jpg' %}
{% endimage %}
{% endif %}
{{ form(image.form) }}
{% else %}
Es sind noch keine Images vorhanden
{% endfor %}
Am Ende gibt es eine Menge Javascript-Sachen, die das Ein- und Ausblenden des Formulars und das Absenden übernehmen.
Ist das die richtige Art und Weise, meinen Fall zu bearbeiten? Ich glaube nicht, dass das Übergeben eines Formulars für jedes Bild einen Mehraufwand bedeutet?
Der Grund, warum ich mit Formularen arbeite, anstatt einfach Daten aus einem manuell hinzugefügten Eingabefeld zu übergeben, ist CSRF-Schutz und die intelligente Verwendung der Formularkomponente.