2014-02-26 4 views
1

다음 시나리오에 대한 적절한 관계 설정/스키마를 알아 내려고하고 있습니다. 관계 자체에 대해 분명하지 않습니다.CakePHP 관계 시나리오

내 모델 : AccidentPeople.

사고에는 많은 사람들이 관련 될 수 있습니다. 사람이 많은 사고와 관련이있을 수 있습니다.

예 : 사고는 Abe와 Bob에게 발생합니다. 아베는 여러 가지 사고와 관련이있을 수 있습니다.

적절한 스키마가있는 사고 테이블, 사용자 테이블 및 accidents_people 테이블이 있습니다. 사용자가 사람과 관계없이 독립적으로 사고를 추가 할 수 있고, 사고와 독립적으로 사람을 추가하고, 사고를 편집 할 때 여러 사람과 연결할 수 있기를 바랍니다. 이것이 가능한가?

$people = $this->Accident->Person->find('list'); //should give me list of all people 
$this->set('people', $people); //should allow me to access a list of all people in view 

답변

2

TLDR :

당신이 설명하는 무엇이다 "하고 많은에 속한다"(또한 HABTM라고도 함)의 관계 :

http://book.cakephp.org/2.0/en/models/associations-linking-models-together.html#hasandbelongstomany-habtm


참고/다른 옵션 :

또 다른 옵션은 HasMany Through입니다. 기본적으로 HABTM이지만 조인 테이블 전용 모델이 있습니다. 당신이 CakePHP Model and Database Conventions을 다음과 같은 경우

: 당신이 당신의 가입 테이블 (ID, person_id로, 그리고 accident_id)에서 단지 3 개 필드


모델 대회보다 더 필요하면이 좀 더 유연성을 허용 "People"모델은 실제로 "Person"이어야합니다.

비표준을 사용하는 것은 "괜찮습니다". 그러나 케이크를 배우는 경우, 지금 당장 그들에게 충실하려고 노력하는 것이 좋습니다.

(정확하게 "Person"을 모델로 사용하는 코드를 보면 설명에 잘못 입력했다고 가정합니다)