2015-08-26 3 views
0

У меня есть три класса,Sonata Admin, зависимый ребенок поля

OrderAdmin, ProductAdmin, OrderHasEquipmentAdmin.

Order необходимо добавить Product и Equipment, связанные с этим продуктом, в промежуточную таблицу OrderHasEquipment.

Я могу добавить новый продукт, но когда я пытаюсь добавить OrderHasEquipment, он показывает каждое оборудование, которое у меня есть в моей БД, я хочу показать оборудование, доступное для этого продукта, и добавить к этому заказу.

отношение

Заказ -> ManyToOne -> Продукт

Заказ -> oneToMany -> OrderHasEquipment(потому что мне нужна промежуточный объект для работы с сонатным администратором sonata_type_collection и sonata_type_model_list)

Продукт -> manyToMany -> Оборудование

Таким образом, при создании/редактировании Order, он показывает список выбора с Product с, мне нужно поведение, которое при выборе Product, OrderHasEquipment (то есть sonata_type_collection поля с sonata_type_model_list внутри, так как промежуточным объектом), позвольте мне добавить только элемент Equipment, связанный с тем, что выбрано Product.

Любой способ сделать это?

+0

ли используется вы -> с ('Relation таблицы')? –

+0

Теперь я пытался использовать дочерние и родительские вещи, но не работает так, как было показано. Как это '-> с ('Relation table')' stuff? –

+0

Установили ли вы правильные отношения для OrderHasEquipment? –

ответ

0

Если все отношения справа:

protected function configureDatagridFilters(DatagridMapper $datagridMapper) 
    { 
     $datagridMapper 
      ->add('Equipment') //name from Entity 
     ; 
    } 
+0

ну, вы сказали '-> с ('Equipment')' before, now 'add', как я уже сказал, я могу добавить поле формы правильно, без проблем, используя' -> add ('Equipment')' what I не может (потому что не знаю, как) состоит в том, чтобы получить только те элементы для этого поля, которые связаны с «продуктом» в 'Order'. –