2013-01-22 1 views
2
여기

이 (전체 파일 내용 편집을 할 ) 엔티티입니다 OneToOne 관계로 null 일 수 없습니다 나는 이것을 시도한다, 나는 과실을 얻는다Symfony2 교리는, 열은

An exception occurred while executing 'INSERT INTO _moon_material (userID, moonID, typeID) VALUES (?, ?, ?)' with params {"1":38,"2":40001583,"3":null}: 

SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'typeID' cannot be null 

하지만 내가 OneToOne (위의 코드) 관계를 주석하면 올바르게 작동하므로 주요 문제는 설명에 포함됩니다. OneToOne 관계 ... pls 처리해야합니다.

내가 원하는 것은 내가 테이블에있는 항목을 다시 쓰고 싶습니다. 하지

ps의 경우 쓰기 단순히 "_moon_material"나 : 내가 필요로하는 만이 null 값에

@ORM\JoinColumn(name="typeID", referencedColumnName="typeID") 

을 설정할 수 있도록하려면

+0

전체 유형의 invTypes 및 MoonMaterial을 게시하십시오. 실수는 분명히 그것이 – AdrienBrault

+0

EDITED 코드를보고 있다고 생각하는 곳이 아니므로 – user1954544

+0

그래서 어떻게 생각하십니까? 문제가 어디에 있습니까? 어떤 아이디어? – user1954544

답변

1

내가 단방향 관계를 할 수없는 이유를 알고하지 않습니다 ... 당신이 등 양식 변경을 의미한다고 생각, 그래서 내가 invTypes 테이블 주석에 일부 코드를 추가하여 양방향으로 그것을 해결

+0

비슷한 문제가 있었는데이 트릭이 해결되었습니다. 감사합니다 !!!!! –

6

을 (id로 이름을 가입) "읽기"에 대한 관계

@ORM\JoinColumn(name="typeID", referencedColumnName="typeID", nullable=true) 

그리고 'typeID'열에도 null을 허용해야합니다. (How do I modify a MySQL column to allow NULL? 참조)

NULL을 사용하지 않으려면 그 반대입니다.

+0

내가 말했듯이 "id"로 "이름"을 가져 오는 관계 만 (invTypes 테이블) 필요합니다. 어떤 경우에도 \ 추가 \ 편집하지 않아야합니다. 코드가 도움이되는 방식을 모르겠 음 – user1954544

0

당신의 엔티티에서 setTypeID() 메소드를 검사하고 싶습니다. 예상했던대로이 속성을 설정하지 않았을 가능성이 있습니다. 따라서 null입니다.

+0

코드가 추가 된 pls는 – user1954544

0

$invTypes_byTypeID$typeID 속성은 모두 typeID 열로 매핑됩니다. 당신은 교리로이 일을 할 수 없습니다.

$typeID 속성을 제거하고 'type id'로 작업하는 대신 type 인스턴스로 작업하고 $invTypes_byTypeID 속성으로 설정하는 것이 좋습니다.

나는

+0

이니 MoonMaterial에서 $ typeID (name)을 변경해야합니다. 그게 전부입니까? – user1954544

+0

모든 typeID 이름을 userTypeID로 변경하고 .... 여전히 SQLSTATE [23000]에 오류가 있습니다. 무결성 제약 조건 위반 : 1048 'userTypeID'열이 null 일 수 없음 ' – user1954544

+0

예제를 보여 줄 수 있습니까? 전체 코드 – user1954544