2010-07-06 4 views
2

저는 하나 또는 두 명의 부동산 중개인이 하나의 홈을 나열 할 수있는 부동산 응용 프로그램을 만들고 있습니다. 이와 같이, 나는 Cake Cookbook의 3.7.6.7 절에 주어진 예제를 따르려고 노력하고있다. 여기 내 부동산 모델에서 무슨 일이 일어나고 있는지의 :이 완전히 오류 메시지와 함께 응용 프로그램, 휴식동일한 모델에 대한 Cakephp 복수 관계

class Realtor extends AppModel { 
    var $primaryKey = $num; 
    var $name = 'Realtor'; 
    var $hasMany = array('Homes' => 
     array('className' => 'Home', 
       'foreignKey' => 'realtor_num', 
     ...), 
         'CoListedHomes' => 
     array('className' => 'Home', 
       'foreignKey' => 'realtor2_num', 
     ...) 
    ); 

"을 (를) 찾을 수 없습니다 모델 CoListedHomes에 대한 데이터베이스 테이블 co_listed_homes을."

Cookbook 3.7.6.7의 두 번째 예를 다시 보면 데이터베이스에 별도의 "messages_received"및 "messages_sent"테이블이 없어야한다는 것이 분명해 보입니다. 그래서 내가 잘못하고있는 것은 무엇입니까? ?

ETA : Weirdly (나에게) 나는 배열의 순서를 바꿔 가며 작업 할 관계가 있다고 생각한다. foreignKey = realtor2_num에있는 첫 번째 배열은 foreignKey = 2에있는 'ListedHomes' realtor_num은 '집'이라고합니다. 내 질문에 다음, 왜 순서가 중요해야하며, 왜 케익은 어떤 상황에서 데이터베이스에없는 테이블에 대해 이야기해야 하는가?

답변

0

경우에 따라 카테고리 설정으로 구축했을 것입니다. 그런 다음 Category와 Home 사이에 조인 테이블을 작성했습니다.

그런 다음 당신은 아마 당신이 homes 테이블을 가리키는 CoListedHomes에 대해 정의 된 모델을 가지고 있지를 의미 두 범주와 가정

+0

문제가 잘못되었거나 정보가 충분하지 않다고 의심됩니다. 나는 이것을 올바른 답으로 표시 할 것이고, 처음에는 더 좋은 테이블 디자인이 분명히 이런 유형의 문제에서 나를 구할 것입니다! – thesunneversets

0

"모델 CoListedHomes에 대한 찾을 수 없습니다 데이터베이스 테이블 co_listed_homes"beween hasAndBelongsToMany의를 가질 수 있습니다.

그러나 DavidYell의 말처럼 hasAndBelongsToMany라고하는 n : m으로 코딩합니다.

+0

확실히 CoListedHomes에 대해 정의 된 모델이 없지만 나중에 작동하는 ListedHomes에 대해 정의 된 모델을 가지고 있지 않았습니다. 여기에 모델을 정의해야한다고 생각하지 않습니다. Cake는 $ hasMany 배열의 첫 번째 요소 인 'Homes'모델을 발견했지만 'CoListedHomes'도 모델이 아니란 사실에 화를 냈습니다. (이것은 주문을 바꿀 때 왜 효과가 있었는지 설명 할 수 있습니다. 따라서 첫 번째 요소는 비 모델이었습니다.) hasAndBelongsToTwo 카테고리를 고안하지 않고도 HABTM 관계가 가능할 것이라고 나는 동의합니다. 다음 번에! – thesunneversets

관련 문제