2015-03-12 1 views
0

У меня есть объект, который DishesWithCategory по ссылке другим объектам:ManyToOne отношение в соната админ пачке

/** 
    * @ORM\ManyToOne(targetEntity="Dishes", cascade={"persist"}) 
    */ 
    protected $dishes; 

    /** 
    * @ORM\ManyToOne(targetEntity="MenuCategory", cascade={"persist"}) 
    */ 
    protected $category; 

В админ у меня есть:

$formMapper 
    ->add('dishes', 'sonata_type_admin', [ 
     'delete' => false, 
     'btn_add' => false 
    ]) 
    ->add('category', 'sonata_type_model',[ 
     'expanded' => true, 
     'multiple' => true, 
    ]) 
; 

Когда я пытаюсь создать блюдо, я получить сообщение об ошибке: Обнаружено, что объект типа Doctrine \ Common \ Collections \ ArrayCollection в ассоциации ZaWeb \ MenuBundle \ Entity \ DishesWithCategory # категории, но ожидает ZaWeb \ MenuBundle \ Entity \ MenuCategory

Может ли кто-нибудь столкнуться с этим? как я могу это исправить?

ответ

0

Я не совсем понял вашу модель, но я думаю, что проблема исходит из: multiple => true в категории, потому что вы можете установить только одну категорию (ManyToOne) для DishesWithCategory.

Либо вам нужно изменить свою модель на OneToMany для вашей категории $, либо вам нужно удалить ArrayCollection, который может быть в конструкторе вашей модели, и удалить multiple => true.

Вам может понадобиться сделать:

$formMapper 
    ->add('dishes', 'sonata_type_admin', [ 
     'delete' => false, 
     'btn_add' => false 
    ]) 
    ->add('category', 'sonata_type_model',[ 
     'expanded' => true 
    ]) 
; 

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

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