2009-12-01 7 views
1

에서 구축 할 때 "키 열이 테이블에 존재하지 않는"나는 다음 schema.yml 파일 파일이 있습니다문제 해결 schema.yml 파일

Page: 
    actAs: 
    I18n: 
     fields: [name,html,urlShortDesc] 
    columns: 
    name: string 
    gender: 
     type: enum 
     values: [html, photoGallery] 
     default: html 
    html: string 
    urlShortDesc: string 
    section_id: 
     type: integer 
     notnull: true 
    relations: 
    Section: 
     foreignAlias: Pages 
    SubPage: 
     class: Page 
     local: subpage 
     foreign: id 
     type: one 

그러나, 나는 build-all-reload 명령을 실행할 때, 다음과 같은 오류 메시지가를 표시 :

SQLSTATE [42000]를 : 구문 오류 또는 액세스 위반 : 1072 키 열 '하위 페이지가'테이블에 존재하지 않는

내가 노력하고있어 자기 - 관련 클래스를 구현하는 것.

답변

2

나는 당신이 나열된 것을 갖고 싶어 생각 :

SubPage: 
    class: Page 
    local: subpage 
    foreign: id 
    type: one 

하지만 당신은 ID 열 필요 포함 '서브'라는 페이지 테이블의 기본 키와 컬럼 (외국 ID를) 하위 참조 (로컬 : 서브 페이지). 따라서 id = "200"을 포함하고 "200"은 다른 페이지의 실제 키 (id)를 포함하는 subpage라는 필드를 포함하는 id = "100"인 Page를 가질 수 있습니다.

UPDATE :

  • 당신이 당신의 기본 키로하고 해당 ID를 원하는 :

    Page: 
        actAs: 
        I18n: 
         fields: [name,html,urlShortDesc] 
        columns: 
        name: string 
        gender: 
         type: enum 
         values: [html, photoGallery] 
         default: html 
        html: string 
        urlShortDesc: string 
        section_id: 
         type: integer 
         notnull: true 
        id: 
         type: integer 
         notnull: true 
        subpage: 
         type: integer 
         notnull: false 
        relations: 
        Section: 
         foreignAlias: Pages 
        SubPage: 
         class: Page 
         local: subpage 
         foreign: id 
         type: one 
    

    내가 포함하여 스키마에 대한 몇 가지 심각한 가정을하고 있습니다 : 코멘트는 원래 스키마 파일을 수정에서 당신은 그것을 처리 할 것이다 (당신은 autoincrement를 원할 것이다 : 스키마에서 true).

  • 서브 페이지
  • SECTION_ID이 아닌 기본 키
+0

안녕입니다 자식의 관계와 같은 선택 사항입니다! 먼저 도움을 주셔서 감사합니다. 미안하지만 내 스키마에 제안을 "삽입"할 수 있습니까? Doctrine 사용 경험이별로 없기 때문에 조금 혼란 스럽습니다. 고마워, 안부 인사! –

+0

위 응답이 업데이트되었습니다. –