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; }