Symfony2 ManyToMany 또는 OneToMany 또는 무엇입니까?

마빈

내 코드를 실행하기 위해 약 2 주 이후로 노력하고 있습니다.

데이터베이스 구조 (단순화) :

테이블 사용자 | 아이디 | 사용자 이름 |

테이블 작업 | 아이디 | 작업 제목 | 작업 유형 | 사용자

테이블 작업 유형 | 아이디 | 작업 유형 제목 |

테이블 작업 완료 | 아이디 | 작업 ID | 사용자 ID

내가 원하는 것 :

태스크를 추가하고 태스크가 글로벌 (모든 사용자에게 표시됨)인지 또는 태스크가 한 명의 사용자에게만 표시되는지 (전역 또는 User-ID가 테이블 "Tasks"의 테이블 필드 "User"에 입력 됨) 선택합니다.

작업을 "완료"로 표시 한 경우 작업 ID와 사용자 ID를 사용하여 "작업 완료"테이블에 항목을 만들고 싶습니다 (사용자 ID의 값은 항목이 완료된 페이지에서 가져 오며 일반적으로 동일한 값입니다. "작업"필드 "USER"에서와 같이 작업이 "글로벌"작업 인 경우 "작업 완료"테이블의 "USER ID"값은 "글로벌"이 될 수 없지만 사용자의 ID는 이 작업을 수행하고 있습니다.

나는 다 대다, 일대 다 등으로 여러 가지 방법을 시도했습니다. 하지만 항상 오류가 발생합니다. 누군가 나를 도울 수 있습니까? "ID"필드의 테이블 필드 이름에 몇 가지 문제가있을 수 있다는 것을 읽었습니다.

누군가 데이터베이스 구조 / 엔티티를 설정하는 방법을 알려줄 수 있습니다. 많은 도움이 될 것입니다!

감사합니다, Marvin

편집 1

콘솔에서 doctrine : schema : update --force를 수행하는 동안 오류가 발생했습니다.

[Doctrine\DBALDBALException]
An exception occurred while executing 'ALTER TABLE tasks ADD CONSTRAINT
FK_50586597BF396750 FOREIGN KEY (id) REFERENCES task_done (id)':                                                                 

SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`seotool`.`#sql-382_38`, CONSTRAINT `FK_50586597BF396750` FOREIGN KEY (`id`) REFERENCES `task_done` (`id`))

[PDOException]    
SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`seotool`.`#sql-382_38`, CONSTRAINT `FK_50586597BF396750` FOREIGN KEY (`id`) REFERENCES `task_done` (`id`))    

코드 Task.php

<?php

 namespace Seotool\MainBundle\Entity;
 use Doctrine\Common\Collections\ArrayCollection;
 use Symfony\Component\Validator\Constraints as Assert;
 use Doctrine\ORM\Mapping as ORM;

 /**
  * @ORM\Entity
  * @ORM\Table(name="tasks")
  */
 class Task {

/**
 * @ORM\Column(type="integer")
 * @ORM\Id
 * @ORM\GeneratedValue(strategy="AUTO")
 */
protected $id;

/**
 * @ORM\Column(type="string")
 */
protected $task_title;

/**
 * @ORM\Column(type="text")
 */
protected $task_description;


/**
 * @ORM\Column(type="string")
 */
protected $task_priority;

/**
 * @ORM\ManyToOne(targetEntity="TaskTypes", inversedBy="task")
 * @ORM\JoinColumn(name="tasktype", referencedColumnName="id")
 */
protected $TaskTypes;

/**
 * @ORM\ManyToOne(targetEntity="User", inversedBy="task")
 * @ORM\JoinColumn(name="user", referencedColumnName="id")
 */
protected $User;

/**
 * @ORM\ManyToOne(targetEntity="TaskDone", inversedBy="task")
 * @ORM\JoinColumn(name="id", referencedColumnName="id")
 */
protected $TaskDone;

....

TaskDone.php 코드

<?php

 namespace Seotool\MainBundle\Entity;

 use Doctrine\Common\Collections\ArrayCollection;
 use Doctrine\ORM\Mapping as ORM;

 /**
  * @ORM\Entity
  * @ORM\Table(name="task_done")
  */
 class TaskDone
 {

/**
 * @ORM\OneToMany(targetEntity="Task", mappedBy="TaskDone")
 */
protected $task;

/**
 * @ORM\Column(type="integer")
 * @ORM\Id
 * @ORM\GeneratedValue(strategy="AUTO")
 */
private $id;

.....
판초

정확한 오류를 재현 할 수는 없었지만 잘못된 테이블 구조를 살펴보면 조인 열의 이름을 변경하여 실행중인 예제가 있습니다 ... 당신은 포어 키로 사용되는 열을 만들라는 교리를 요청했지만 테이블에는 이미 id라는 열. 대신 name = "task_ id"와 같은 것을 사용하십시오.

당신은 이것을 가지고 있습니다 :

/**
 * @ORM\ManyToOne(targetEntity="TaskDone", inversedBy="task")
 * @ORM\JoinColumn(name="id", referencedColumnName="id")
 */
protected $TaskDone;

다음과 같이 변경하십시오.

/**
 * @ORM\ManyToOne(targetEntity="TaskDone", inversedBy="task")
 * @ORM\JoinColumn(name="task_id", referencedColumnName="id")
 */
protected $TaskDone;

또한 거꾸로 관계가 있습니다. 그러면 "Task"테이블에 task_id 파일이 생성되고 "Task Done"테이블에 생성하려고합니다. 이 문제를 해결하려면 태스크 엔터티에 OnetoMany를 배치하고 TaskDone에 ManyToOne을 배치해야합니다.

교리 문서

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

"는 @OneToMany, @ManyToMany 또는 @CollectionOfElements 같은 비 수집을지도하는 불법 시도"

분류에서Dev

세션 Symfony2를 가져 오거나 요청하는 또 다른 방법은 무엇입니까?

분류에서Dev

Symfony2 ManyToMany 관계는 기존 관련 엔티티도 저장합니다.

분류에서Dev

Hibernate ManyToMany는 OneToMany처럼 작동합니다.

분류에서Dev

IIS 또는 Apache를 사용하는 Windows의 Symfony2 또는?

분류에서Dev

AngularJS 및 Symfony2 양식 또는 양식의 "작업"속성을 제거하는 방법은 무엇입니까?

분류에서Dev

Symfony2 및 Doctrine : OneToMany 관계는 테이블의 데이터를 복제합니다.

분류에서Dev

ForeignKey 또는 ManyToMany를 사용할 때 모델과의 관계가 * 정확하게 * 무엇입니까?

분류에서Dev

CakePHP beforeSave () afterSave ()에 상응하는 Symfony2는 무엇입니까?

분류에서Dev

Symfony2는 ManyToMany 관계를 사용하여 반전 된 엔티티에서 객체를 가져옵니다.

분류에서Dev

Symfony2에서 ParamConverter 예외를 잡는 방법은 무엇입니까?

분류에서Dev

Symfony2 배포 문제를 해결하는 방법은 무엇입니까?

분류에서Dev

AnnotationException : 매핑되지 않은 클래스를 대상으로 @OneToMany 또는 @ManyToMany 사용

분류에서Dev

jQuery noConflict 또는 무엇입니까?

분류에서Dev

Symfony ManytoMany 관계의 첫 번째 값을 URL에 전달하는 방법은 무엇입니까?

분류에서Dev

sqldatasource 또는 xmldatasource 또는 다른 무엇입니까?

분류에서Dev

Vlookup 또는 Hlookup 또는 다른 무엇입니까?

분류에서Dev

지연 초기화 @ManyToMany. 오류는 무엇입니까?

분류에서Dev

Doctrine2에서 OneToMany / ManyToOne 연관 깊이 / 루프를 제한하는 방법은 무엇입니까?

분류에서Dev

Viewpager와 ViewPager2의 장점 또는 차이점은 무엇입니까?

분류에서Dev

Doctrine2 + Symfony2 : Symfony2에서 네임 스페이스가 지정된 Doctrine 엔티티를 사용하는 방법은 무엇입니까?

분류에서Dev

Graylog / Symfony2 / Gelf : 오류를 무시하도록 로거를 구성하는 방법은 무엇입니까?

분류에서Dev

Symfony2 + DBAL. 다중 삽입에 bindValue를 사용하는 방법은 무엇입니까?

분류에서Dev

Symfony2 (doctrine2) : 범용 메서드 updateOrCreate를 만드는 방법은 무엇입니까?

분류에서Dev

symfony2에 특정 파일이 이미 있는지 확인하는 방법은 무엇입니까?

분류에서Dev

Symfony2 지정된 문자로 시작하는 레코드를 찾는 방법은 무엇입니까?

분류에서Dev

Symfony2 사용자 정의 양식 유형 또는 확장

분류에서Dev

Symfony2 레이아웃 구성 또는 상속

분류에서Dev

Symfony2 사용자 정의 양식 유형 또는 확장

Related 관련 기사

  1. 1

    "는 @OneToMany, @ManyToMany 또는 @CollectionOfElements 같은 비 수집을지도하는 불법 시도"

  2. 2

    세션 Symfony2를 가져 오거나 요청하는 또 다른 방법은 무엇입니까?

  3. 3

    Symfony2 ManyToMany 관계는 기존 관련 엔티티도 저장합니다.

  4. 4

    Hibernate ManyToMany는 OneToMany처럼 작동합니다.

  5. 5

    IIS 또는 Apache를 사용하는 Windows의 Symfony2 또는?

  6. 6

    AngularJS 및 Symfony2 양식 또는 양식의 "작업"속성을 제거하는 방법은 무엇입니까?

  7. 7

    Symfony2 및 Doctrine : OneToMany 관계는 테이블의 데이터를 복제합니다.

  8. 8

    ForeignKey 또는 ManyToMany를 사용할 때 모델과의 관계가 * 정확하게 * 무엇입니까?

  9. 9

    CakePHP beforeSave () afterSave ()에 상응하는 Symfony2는 무엇입니까?

  10. 10

    Symfony2는 ManyToMany 관계를 사용하여 반전 된 엔티티에서 객체를 가져옵니다.

  11. 11

    Symfony2에서 ParamConverter 예외를 잡는 방법은 무엇입니까?

  12. 12

    Symfony2 배포 문제를 해결하는 방법은 무엇입니까?

  13. 13

    AnnotationException : 매핑되지 않은 클래스를 대상으로 @OneToMany 또는 @ManyToMany 사용

  14. 14

    jQuery noConflict 또는 무엇입니까?

  15. 15

    Symfony ManytoMany 관계의 첫 번째 값을 URL에 전달하는 방법은 무엇입니까?

  16. 16

    sqldatasource 또는 xmldatasource 또는 다른 무엇입니까?

  17. 17

    Vlookup 또는 Hlookup 또는 다른 무엇입니까?

  18. 18

    지연 초기화 @ManyToMany. 오류는 무엇입니까?

  19. 19

    Doctrine2에서 OneToMany / ManyToOne 연관 깊이 / 루프를 제한하는 방법은 무엇입니까?

  20. 20

    Viewpager와 ViewPager2의 장점 또는 차이점은 무엇입니까?

  21. 21

    Doctrine2 + Symfony2 : Symfony2에서 네임 스페이스가 지정된 Doctrine 엔티티를 사용하는 방법은 무엇입니까?

  22. 22

    Graylog / Symfony2 / Gelf : 오류를 무시하도록 로거를 구성하는 방법은 무엇입니까?

  23. 23

    Symfony2 + DBAL. 다중 삽입에 bindValue를 사용하는 방법은 무엇입니까?

  24. 24

    Symfony2 (doctrine2) : 범용 메서드 updateOrCreate를 만드는 방법은 무엇입니까?

  25. 25

    symfony2에 특정 파일이 이미 있는지 확인하는 방법은 무엇입니까?

  26. 26

    Symfony2 지정된 문자로 시작하는 레코드를 찾는 방법은 무엇입니까?

  27. 27

    Symfony2 사용자 정의 양식 유형 또는 확장

  28. 28

    Symfony2 레이아웃 구성 또는 상속

  29. 29

    Symfony2 사용자 정의 양식 유형 또는 확장

뜨겁다태그

보관