2011-02-02 6 views
0

users{name,id,age_range_id}age_ranges{id,range_name}의 두 테이블이 있습니다.
두 개의 모델, 컨트롤러 및 적절한보기 파일도 있습니다.cakePHP : 선택 목록 채우기 자동화 구성 요소

보기에는 적절한 양식을 보유하고있는 adduser.ctp 파일이 있습니다.
내가 원하는 것은 age_ranges.name 필드의 옵션을 보유 할 입력 (선택)을 갖는 것입니다.
그래서 사용자 모델에 var $hasMany = 'age_ranges';을 추가했습니다. 다음은 무엇입니까?

$this->set 컨트롤러의 옵션으로 옵션을 저장 한 다음보기에서 사용할 수 있다는 것을 알고 있습니다.
하지만 모델을 관련시킴으로써 그것을 수행하는 '자동'방법이 있다고 가정합니다. 나는이 질문에 나를 이끌었다. 어떻게?

답변

1

나는 소프와 교리가 이미 쓴 것을 반복하지 않겠다. 둘 다 정확합니다.

그러나 모델 파일을 보지 않고도 확신하기는 어렵지만 사용자 모델에서는 관계가 User : hasOne : AgeRange이고 AgeRange 모델에서 AgeRange : hasMany : User가 아니라 다른 방법으로 당신이 작성한대로 라운드.

또한 테이블 이름 ('age_ranges')을 관계에 지정하지 않고 모델 이름 ('AgeRange')을 지정하십시오.

은 설명서에이 페이지를 참조하십시오

http://book.cakephp.org/view/1001/Understanding-Models & http://book.cakephp.org/view/1039/Associations-Linking-Models-Together

+0

+1 그래. 모델명 : D –

1

$ this-> set ('ageRanges', $ this-> User-> AgeRange-> find ('list'));

$this->User->AgeRange->find('list')을하고 select 문에 대한보기로 되었 : 컨트롤러 액션에

다음 양식에 $ this-> 서식 -> 입력 ('age_range_id')를 추가

1

이 작업을 수행 할 수 있습니다