我对doctrine 2有问题 . 我有以下数据库表:所以,Doctrine生成的实体从站点的桌面设置中检索数据,但我需要从desk_settings表中检索所有设置,并使用desk_id从desk_settings_values表覆盖其值
数据库图像 - > https://docs.google.com/file/d/0B7rOFTJGfJwTWEQ3bXZFU1hXZlU/edit?usp=sharing
使用脚本生成的Doctrine实体:
/**
* Desk
*
* @ORM\Table(name="desk")
* @ORM\Entity
*/
class Desk
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="code", type="string", length=100, nullable=false)
*/
private $code;
/**
* @var string
*
* @ORM\Column(name="description", type="string", length=255, nullable=false)
*/
private $description;
/**
* @var \DateTime
*
* @ORM\Column(name="created", type="datetime", nullable=false)
*/
private $created;
/**
* @var \Doctrine\Common\Collections\Collection
*
* @ORM\ManyToMany(targetEntity="PayBox\Entity\DeskSettings", mappedBy="desk")
*/
private $deskSettings;
}
use Doctrine\ORM\Mapping as ORM;
/**
* DeskSettings
*
* @ORM\Table(name="desk_settings")
* @ORM\Entity
*/
class DeskSettings
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="setting_key", type="string", length=100, nullable=false)
*/
private $settingKey;
/**
* @var string
*
* @ORM\Column(name="setting_value", type="string", length=255, nullable=false)
*/
private $settingValue;
/**
* @var \DateTime
*
* @ORM\Column(name="created", type="datetime", nullable=false)
*/
private $created;
/**
* @var \Doctrine\Common\Collections\Collection
*
* @ORM\ManyToMany(targetEntity="PayBox\Entity\Desk", inversedBy="deskSettings")
* @ORM\JoinTable(name="desk_settings_values",
* joinColumns={
* @ORM\JoinColumn(name="desk_settings_id", referencedColumnName="id")
* },
* inverseJoinColumns={
* @ORM\JoinColumn(name="desk_id", referencedColumnName="id")
* }
* )
*/
private $desk;
}
1 回答
来自Doctrine文档:
您需要将类结构更改为一对多/多对一 . See this blog .