2010-07-04 7 views
0

Doctrine ORM과 Symfony에서 통하는 일대일 관계를 어떻게 구현해야합니까? 데이터베이스에 몇 개의 폴더가 있다고 가정합니다. 각 폴더는 기본 아이콘 또는 다른 테이블에 표시된 사용자 정의 아이콘을 가질 수 있습니다. 이 관계를 스키마 파일에 어떻게 설명해야합니까? 주어진 폴더 관계가 발생했는지 또는 발생하지 않았는지 어떻게 알 수 있습니까? Doctrine ORM과의 관계 성

는 나 자신 추측을 가지고 있지만, 각각은 매우 좋지 않아 보인다 :

1)의 내가 id 열 및 folder 테이블에 folder_icon_id 열이 folder_icon 테이블을 정의하고 외래 키와 함께 이러한 열을 연결한다고 가정 해 봅시다. folder_icon_id에 NULL이 있으면 관계가 발생하지 않습니다. 정수 값이 포함되어 있으면 각 폴더 아이콘을 가리 킵니다. 이런 식으로 구현하고 $ folder-> getFolderIcon()과 같은 것을 사용하여 폴더 아이콘을 얻으려고하면 null로 설정된 필드가있는 FolderIcon 클래스의 인스턴스를 얻습니다 (NULL, FALSE 또는 Doctrine_Null과 같은 것을 얻으려고합니다).). 왜 그래야만하지? 반환 된 객체가 '실제'폴더 아이콘이 아닌지 어떻게 확인해야합니까?

2) 앞에서 설명한 것과 비슷한 방법을 사용한다고 가정 해 보겠습니다. 먼저 folder_icon 테이블의 첫 번째 행을 기본 아이콘으로 정의하여 선택한 사용자 지정 아이콘이없는 각 폴더가이 첫 번째 행과 관련되도록합니다. 이 경우에는 FolderIcon 클래스의 더미 인스턴스를 가져 오는 데 아무런 문제가 없습니다. 그러나 삭제 된 아이콘을 기본 아이콘과 함께 사용하는 모든 폴더와 관련된 onDelete 동작 'SET 1'이 없기 때문에 사용자 지정 폴더 아이콘이 양식 데이터베이스에서 제거되면 문제가 발생합니다.

이 문제를 어떻게 해결해야합니까? 스키마 파일에서 이러한 종류의 관계를 정의하는 올바른 방법은 무엇입니까? 마법의 방법이

은 $ 폴더 -> folder_icon를 사용하고 그 관계 사용는 isset의 존재 여부를 테스트하는 getVariable와

답변

1

문제는()입니다. 관계의 존재 여부를 테스트하는 데 대한 교리 웹 사이트 문서를 읽으십시오. 현재 모바일로 연결되어 있으므로 연결할 수 없습니다.

+0

위대한, 그게 내가 찾고있는 것입니다. 따라서 스키마를 기술하고 isset ($ folder-> FolderIcon)을 사용하여 주어진 폴더에 대한 관계가 존재하는지 확인하는 첫 번째 방법을 따라야합니다. 감사! –