2015-03-26 2 views
4

Я пытаюсь реализовать отношение «многие ко многим» между Page и Image, используя объект PageHasImage. В PageAdmin я добавил поле следующим образом:Sonata Admin - sonata_type_collection: выберите из списка существующих сущностей

->add(
     'galleryImages', 
     'sonata_type_collection', 
     array(
      'cascade_validation' => false, 
      'by_reference' => false, 
      'type_options' => array('delete' => false) 
      ), 
     array(
      'edit' => 'inline', 
      'inline' => 'table', 
      'sortable' => 'position', 
      'admin_code' => 'sonata.admin.page_has_image' 
    ) 
) 

, который дает мне возможность добавить новый Image поле, а затем либо загрузить новое изображение или выбрать его из списка загруженных из них. Часть загрузки работает так, как ожидалось, но выбор из уже загруженного списка изображений ничего не делает. Кнопка Select в списке Images имеет только '#' в своем href и, похоже, ничего полезного. Также есть флажки рядом с перечисленными изображениями, но нет кнопок действий, чтобы использовать выбор.

Что мне нужно настроить, чтобы действия в списке означали что-нибудь? Я предполагаю, что в организаторах отношений или в методах событий жизненного цикла есть что-то не так, но я бы оценил некоторые рекомендации.

ответ

5

Хорошо, я вижу, что это не популярный вопрос, а для любой бедной души, которая скоро встретит эту проблему - там есть ошибка в Сонате. Кроме того, я бы оценил документацию Sonata Admin 4/10 ... Я потратил несколько дней на поиск достойного описания различных параметров конфигурации сонатных форм, будучи уверенным, что я что-то неправильно сконфигурировал. Отличный способ провести свою жизнь, а.

Вот решение: https://github.com/sonata-project/SonataDoctrineORMAdminBundle/issues/404

Я копировать его здесь для полноты ради:

Комментируя следующие строки в разделе Ресурсы/мнения/CRUD/edit_orm_many_association_script.html.twig устраняет проблему

if (this.nodeName == 'A' && (target.attr('href').length == 0 ||  target.attr('href')[0] == '#')) { 
Admin.log('[{{ id }}|field_dialog_form_list_link] element is an anchor, skipping action', this); 
return; 

}

+1

4/10 много;) Sonata documentaiton глубока и не UpToDate ... –

+2

2/10, нам нужно напомнить им об определении API и о том, как написать для него документацию (или даже создать ее!). А также, как сохранить номер версии с помощью файлов cookie или localstorage .. Или даже sessionstorage! –

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