学说2多对多带翻译

问题描述 投票:0回答:1

我对教义 2 有疑问。 我有以下数据库表: 因此,Doctrine 生成从站点的桌面设置中检索数据的实体,但我需要从 desk_settings 表中检索所有设置,并使用 desk_id 覆盖 desk_settings_values 表中的值

数据库图像 -> https://docs.google.com/file/d/0B7rOFTJGfJwTWEQ3bXZFU1hXZlU/edit?usp=sharing

用脚本生成的教义实体:

/**
 * 桌子
 *
 * @ORM\Table(名称=“办公桌”)
 * @ORM\实体
 */
课桌
{
    /**
     * @var 整数
     *
     * @ORM\Column(name="id", type="integer", nullable=false)
     * @ORM\Id
     * @ORM\GenerateValue(策略=“IDENTITY”)
     */
    私有$id;

    /**
     * @var 字符串
     *
     * @ORM\Column(名称=“代码”,类型=“字符串”,长度= 100,可空= false)
     */
    私人$代码;

    /**
     * @var 字符串
     *
     * @ORM\Column(名称=“描述”,类型=“字符串”,长度= 255,可空= false)
     */
    私人$描述;

    /**
     * @var \日期时间
     *
     * @ORM\Column(名称=“已创建”,类型=“日期时间”,nullable=false)
     */
    私人$创建;

    /**
     * @var \Doctrine\Common\Collections\Collection
     *
     * @ORM\ManyToMany(targetEntity=“PayBox\Entity\DeskSettings”,mappedBy=“desk”)
     */
    私人$deskSettings;
}


使用 Doctrine\ORM\Mapping 作为 ORM;

/**
 * 桌面设置
 *
 * @ORM\Table(名称=“desk_settings”)
 * @ORM\实体
 */
类 DeskSettings
{
    /**
     * @var 整数
     *
     * @ORM\Column(name="id", type="integer", nullable=false)
     * @ORM\Id
     * @ORM\GenerateValue(策略=“IDENTITY”)
     */
    私有$id;

    /**
     * @var 字符串
     *
     * @ORM\Column(名称=“setting_key”,类型=“字符串”,长度= 100,可空= false)
     */
    私有$settingKey;

    /**
     * @var 字符串
     *
     * @ORM\Column(名称=“设置值”,类型=“字符串”,长度= 255,可空= false)
     */
    私有$settingValue;

    /**
     * @var \日期时间
     *
     * @ORM\Column(名称=“已创建”,类型=“日期时间”,nullable=false)
     */
    私人$创建;

    /**
     * @var \Doctrine\Common\Collections\Collection
     *
     * @ORM\ManyToMany(targetEntity="PayBox\Entity\Desk", inversedBy="deskSettings")
     * @ORM\JoinTable(name="desk_settings_values",
     * 加入列={
     * @ORM\JoinColumn(名称=“desk_settings_id”,referencedColumnName=“id”)
     * },
     * inverseJoinColumns={
     * @ORM\JoinColumn(名称=“desk_id”,referencedColumnName=“id”)
     * }
     *)
     */
    私人办公桌;
 }

mysql zend-framework symfony orm doctrine-orm
1个回答
1
投票

来自学说文档:

为什么多对多关联不太常见?因为经常你 想要将附加属性与关联关联起来,其中 如果您引入关联类。因此,直接 多对多关联消失并被替换 3 个参与之间的一对多/多对一关联 课程。

您需要将类结构更改为一对多/多对一。 请参阅此博客

© www.soinside.com 2019 - 2024. All rights reserved.