Intereting Posts
Отфильтровать раскрывающееся меню на основе другого выбора Проблема с командой PHP TesseractOCR 500 Внутренняя ошибка сервера с использованием PHP и SQLite PHP MVC / ORM Framework, которые являются Hyper PHP (HipHop) Ready Попытка получить удаленный сервер базы данных, работающий с mysqli локально получить имя переменной post PHP для получения типов географии PostGIS Zend Framework Oauth Provider Я получаю неожиданную ошибку T_VARIABLE, когда я открываю приложение facebook с этим кодом. Пожалуйста, сделайте этот код правильным Как я могу реализовать OCR на веб-сайте с помощью PHP? У меня есть png, закодированный base64, как написать образ в файл на PHP? Архитектура приложений ООП: на каком слое сидит ленивый загрузчик? Проблема WordPress PHP в functions.php относительно оператора if и else if Отправлять уведомление по электронной почте, когда изменения статуса пользовательского заказа в WooCommerce LAST_INSERT_ID (), как он работает в среде с несколькими пользователями

Symfony 2 – форма для каждого экземпляра объекта

У меня есть функция Timeslot, где пользователь должен иметь возможность редактировать начало и конец каждого слота.

Поэтому я хотел бы создать одну форму, содержащую все временные интервалы. Я основывал свой код на этой статье в symfony docs: http://symfony.com/doc/current/cookbook/form/form_collections.html Проблема заключается в том, что в этой статье есть какой-то родительский объект, для которого экземпляры коллекции должны назначить. В моем случае временные интервалы являются автономными и не имеют отношения к другому объекту (который на данном этапе является релевантным).

Итак .. мой вопрос: как мне создать коллекцию форм с моими временными интервалами?

controller.php

/** * @Route("/settings", name="settings") * @Template() */ public function settingsAction() { $timeslots = $this->getDoctrine()->getRepository("ScheduleBundle:Timeslot")->findAll(); $timeslots_form = $this->createFormBuilder() ->add('timeslots', 'collection', array( 'type' => new TimeslotType(), )) ->add('save', 'submit') ->getForm(); return array( 'timeslots' => $timeslots_form->createView() ); } 

TimeslotType.php:

 class TimeslotType extends AbstractType { /** * @param FormBuilderInterface $builder * @param array $options */ public function buildForm(FormBuilderInterface $builder, array $options) { $builder ->add('start', 'time', array( 'input' => 'datetime', 'widget' => 'choice', )) ->add('end', 'time', array( 'input' => 'datetime', 'widget' => 'choice', )) ; } /** * @param OptionsResolverInterface $resolver */ public function setDefaultOptions(OptionsResolverInterface $resolver) { $resolver->setDefaults(array( 'data_class' => 'Oggi\ScheduleBundle\Entity\Timeslot' )); } /** * @return string */ public function getName() { return 'timeslot'; } } 

Есть предположения? заранее спасибо!

Передайте массив вместо объекта в вашу форму. Форма может обрабатываться либо просто отлично.

 $timeslots = $this->getDoctrine()->getRepository("ScheduleBundle:Timeslot")->findAll(); $formData = array('timeslots' => $timeslots); $timeslots_form = $this->createFormBuilder($formData) ...