2015-02-19 2 views
2

У меня есть два объекта: «Событие» и «EventImage». Одно событие может иметь несколько изображений.sonata sonata_type_collection таблица отображения

Это отношение определяется по таблице событий:

** 
* Event 
* 
* @ORM\Table() 
* @ORM\Entity(repositoryClass="AppBundle\Entity\EventRepository") 
*/ 

class Event 
{ 

    /** 
    * @ORM\OneToMany(targetEntity="EventImage", mappedBy="event") 
    */ 
    protected $eventImages; 

} 

и это соотношение, определенное на EventImage таблице:

/** 
* EventImage 
* 
* @ORM\Table() 
* @ORM\Entity(repositoryClass="AppBundle\Entity\EventImageRepository") 
*/ 
class EventImage 
{ 
    /** 
    * @ORM\ManyToOne(targetEntity="Event", inversedBy="eventImages") 
    * @ORM\JoinColumn(name="event_id", referencedColumnName="id") 
    */ 
    protected $event; 
} 

и в моих "configureFormFields" в EventAdmin

$formMapper 
    ->add('eventImages', 'sonata_type_collection',array(), array(
         'edit' => 'inline', 
         'inline' => 'standard', 
         'sortable' => 'listOrder' 
       )) 

и в моем "" в EventImageAdmin

$formMapper 
    ->add('id') 
    ->add('imagePath', 'text') 
->end() 
; 

Теперь я увидел пример, где вы получите красивую отформатированную таблицу, с каждой вытащенной записью в строке, с флажком для удаления строки, а также с возможностью перетаскивания, а также «добавить новую строку», чтобы связать новый элемент (или добавить новый)

Но все, что у меня есть, - это каскадный список связанных записей события EventImage, не отформатированных в таблице, без опции «добавить новую строку».

Что я делаю неправильно?

ответ

1

Вы пропустили некоторые параметры. Попробуйте это:

->add('eventImages', 'sonata_type_collection', array(
       'by_reference' => true, 
       'label' => false, 
       'type_options' => array('delete' => true), 
       'cascade_validation' => true, 
       'btn_add' => 'Add new EventImages', 
       "required" => false), array(
       'edit' => 'inline', 
       'inline' => 'table' 
      )) 
+0

Спасибо за ваш ответ, но, к сожалению, это не сработало. Я все еще получаю тот же каскад записей без опции для добавления .... – manuel

2

в вашем EventImageAdmin нет необходимости id поля также использовать sonata_type_model_list для imagePath

$formMapper 
     ->add('imagePath', 'sonata_type_model_list', array('required' => false)); 

В вашем EventAdmin определить admin_code идентификатор услуги EventImageAdmin в четвертом параметре add() функции $formMapper «s

$formMapper 
    ->add('eventImages', 'sonata_type_collection', array(
      'cascade_validation' => false, 
      'type_options'  => array('delete' => false), 
     ), array(

      'edit'   => 'inline', 
      'inline'   => 'table', 
      'sortable'  => 'position', 
      'link_parameters' => array('context' => 'define context from which you want to select media or else just add default'), 
      'admin_code'  => 'sonata.admin.your_service_id_here' 
      /*here provide service name for junction admin */ 
     ) 
    ); 

Подробнее см. Мой еще один ответ в отношении Handling multiple file uploads in Sonata Admin Bundle

 Смежные вопросы

  • Нет связанных вопросов^_^