【问题标题】:ManyToOne relation in sonata admin bundle奏鸣曲管理包中的多对一关系
【发布时间】:2015-03-12 07:06:17
【问题描述】:

我有一个实体 DishesWithCategory 通过链接到其他实体:

   /**
     * @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,
    ])
;

当我尝试创建菜肴时,我收到错误消息: 在关联 ZaWeb\MenuBundle\Entity\DishesWithCategory#category 上找到类型为 Doctrine\Common\Collections\ArrayCollection 的实体,但期待 ZaWeb\MenuBundle\Entity\MenuCategory

有人可以面对这个吗?我该如何解决?

【问题讨论】:

    标签: php symfony sonata-admin


    【解决方案1】:

    我没有完全理解您的模型,但我认为问题出在:多个 => 类别为真,因为您只能为 DishesWithCategory 设置一个类别(ManyToOne)。

    您需要将模型更改为 $category 的 OneToMany,或者您需要删除可能位于模型构造函数中的 ArrayCollection 并删除多个 => true。

    您可能需要这样做:

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

    【讨论】:

      猜你喜欢
      • 2017-04-09
      • 2015-02-24
      • 2014-11-29
      • 2017-06-03
      • 2018-08-11
      • 2018-04-19
      • 2020-12-08
      • 2015-04-02
      • 2015-09-06
      相关资源
      最近更新 更多