doctrine 2 に問題があります。次の db テーブルがあります。したがって、Doctrine はサイトのデスク設定からデータを取得するエンティティを生成しますが、desk_settings テーブルからすべての設定を取得し、desk_id を使用してdesk_settings_values テーブルからその値を上書きする必要があります
DB イメージ -> https://docs.google.com/file/d/0B7rOFTJGfJwTWEQ3bXZFU1hXZlU/edit?usp=sharing
スクリプトで生成された Doctrine エンティティ:
/**
* デスク
*
* @ORM\Table(name="デスク")
* @ORM\エンティティ
*/
クラスデスク
{
/**
* @var 整数
*
* @ORM\Column(name="id", type="integer", nullable=false)
* @ORM\ID
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
プライベート $id;
/**
* @var 文字列
*
* @ORM\Column(name="code", type="string", length=100, nullable=false)
*/
プライベート $code;
/**
* @var 文字列
*
* @ORM\Column(name="description", type="string", length=255, nullable=false)
*/
プライベート $description;
/**
* @var\DateTime
*
* @ORM\Column(name="created", type="datetime", nullable=false)
*/
プライベート $created;
/**
* @var\Doctrine\Common\Collections\Collection
*
* @ORM\ManyToMany(targetEntity="PayBox\Entity\DeskSettings", mappingBy="desk")
*/
プライベート $deskSettings;
}
Doctrine\ORM\Mapping を ORM として使用します。
/**
* デスク設定
*
* @ORM\Table(name="desk_settings")
* @ORM\エンティティ
*/
クラス DeskSettings
{
/**
* @var 整数
*
* @ORM\Column(name="id", type="integer", nullable=false)
* @ORM\ID
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
プライベート $id;
/**
* @var 文字列
*
* @ORM\Column(name="setting_key", type="string", length=100, nullable=false)
*/
プライベート $settingKey;
/**
* @var 文字列
*
* @ORM\Column(name="setting_value", type="string", length=255, nullable=false)
*/
プライベート $settingValue;
/**
* @var\DateTime
*
* @ORM\Column(name="created", type="datetime", nullable=false)
*/
プライベート $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")
*}
* )
*/
プライベート $desk;
}