2012-01-19 3 views
0

I가 다음과 같은 모델 클래스 :CakePHP의 - toMany 관계는 UUID가 작동하지

CakePHP의 각에 대한 UUID를 생성하도록 ID 필드는 모든 CHAR (36)으로 설정되도록 내 데이터베이스 스키마를 설정
class Property extends AppModel 
{ 
    var $name = 'Property'; 

    var $hasMany = array(
     'Inventory' => array(
      'className' => 'Inventory', 
      'foreignKey' => 'property_id' 
     ) 
    ); 
} 

실재. Property 엔티티에서 찾기를 시도 할 때 관련 인벤토리를 검색하는 데 필요한 조인을 추가하지 않는 것 같습니다. 누구든지이 문제에 대한 경험이 있습니까?

감사합니다.

+0

데이터베이스에서 모델을 빌드 할 때 cake bake 콘솔을 사용 했습니까? 보통 나는 케이크 굽기 콘솔을 사용하고 Char와의 관계와 UUID에 문제가 없습니다 (36). – snowflake

답변

0

대답은 다소 어리 석다.

CakePHP 2.0 설치에서 CakePHP 1.3 설치로 마이그레이션했는데 (사용하고 있던 서버에서 PHP를 업데이트 할 수 없음) 모든 모델 클래스에는 여전히 첫 번째 문자가있었습니다. 파일을 Property.php에서 property.php로 변경하면 수정되었습니다.

1

UUID는 아무 관련이 없습니다. 매우 유사한 모델 설정을 사용하며 어디에서나 UUID를 사용할 수 있습니다. 당신이 CakePHP의 규칙 :

내가 그 라인을 제거 제품 ID와 실제 재고에 대한 데이터베이스를 확인해 줄 다음 것 같다으로

당신은 기술적으로, 거기에 그 classNameforeignKey 선언이 필요하지 않습니다. 그렇지 않은 경우 find()을 게시하십시오.

+0

나는 단지 $ hasMany = 'Inventory'와의 관계를 변경했으며, 속성과 일치하는 property_id가있는 인벤토리가 분명히 있습니다. 내 발견은 단지이 this-> Property-> find ('all')이다. SQL 쿼리 로그는 속성 테이블에서 SELECT를 수행하고 있지만 인벤토리 테이블에는 JOIN 또는 다른 쿼리가 없다는 것을 보여줍니다. 이상한! – NathanGaskin