2013-08-03 5 views
1

나는 교리 문 2에 문제가있다. 다음 db 테이블이있다 : Doctrine은 desk_settings 테이블에서 모든 설정을 검색하기 위해 사이트의 데스크 설정에서 데이터를 검색하는 엔티티를 생성한다. 및 desk_id에게doctrine doctrine 2 대다수의 번역본이있다

DB 이미지를 사용 desk_settings_values ​​테이블에서의 값을 덮어 쓰기 ->https://docs.google.com/file/d/0B7rOFTJGfJwTWEQ3bXZFU1hXZlU/edit?usp=sharing

스크립트로 생성 된

교리 개체 :

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

교리 문서에서
+1

SQL 스키마 정의와 Getters & Setters를 제거하고 메서드, getter & setters가없이 전체 엔티티를 게시 할 수 있습니까? – Flip

+0

완료. Doctrine은 2 개의 엔티티 만 생성합니다. Skip DeskSettingsValues ​​엔티티 – Dmitry

+0

은 "desk_id를 사용하여 desk_settings_values ​​테이블에서 값을 덮어 씁니다". desk_settings_values가 책상과 관계가있는 이유는 무엇입니까? 이것은 많은 데스크가 많은 Desk_settings에, 하나의 Desk_setting이 많은 Desk_settings_values에 스키마를위한 더 분명한 선택 인 것으로 보인다. 그런데 데이터베이스 스키마의 그림도 좋을 것입니다. – Flip

답변

1

:

왜 many-to-many 연관들에 덜 일반적이다? 자주 은 추가 속성을 연결과 연관 짓기를 원하기 때문에 연관 클래스를 소개합니다. 결과적으로 직접 many-to-many 연관이 사라지고 3 개의 참여하는 클래스 사이에 일대 다/다 대일 연관으로 바뀝니다.

클래스 구조를 일대 다/다 대 일로 변경해야합니다. See this blog.