2011-10-12 4 views
0

최근에 저는 CakePHP에 대해 조사하기 시작했습니다. 그러나 간단히 질문하면됩니다.CakePHP와의 간단한 연관

이것은 모델 연관성에 대한 것입니다. 2 가지 모델의 사용자 및 그룹이 있습니다. 사용자는 여러 그룹을 가질 수 있으며 그룹은 하나의 사용자 만 가질 수 있습니다.

<?php 
class Group extends AppModel { 
    var $name = 'Group'; 
    var $belongsTo = 'User'; 
} 
?> 

<?php 
class User extends AppModel { 
    var $name = 'User'; 
    var $hasMany = 'Group'; 
} 
?> 

을 그리고 추가 그룹 페이지에 나는 드롭 다운 메뉴에서 사용자를 선택하는 것이 가능하려면 : 그래서 나는이처럼했습니다. - 그러나 옵션없이

<h1>Add Group</h1> 
<?php 
echo $this->Form->create('Group'); 
echo $this->Form->input('user_id'); 
echo $this->Form->input('name'); 
echo $this->Form->input('pincode'); 
echo $this->Form->input('private'); 
echo $this->Form->end('Create group'); 
?> 

user_id를 자동으로 드롭으로 변환 다음과 같이 내 그룹 추가도이다. 내가 무엇을해야 하나? User 테이블에서 "name"을 가져와야한다고 가정합니다.

당신은 그룹 컨트롤러의 추가 그룹 기능의 변수를 설정해야합니다

답변

0

: 나는 마침내 발견
echo $this->Form->input('user_id', array('options' => $user_ids));

+0

답장 보내 주셔서 감사합니다. 우리는 거기에 도달했습니다 - 그러나이 대답은 드롭 다운의 모든 열을 인쇄합니다. 사용자 테이블에서 date, name, id 등의 옵션이 있음을 의미합니다. 나는 단지 User tabel에서 "name"을 원한다. –

+0

예, 맞습니다. 코드를 업데이트했습니다. 그러나 그것은 분명히 '목록'에 더 깔끔합니다. –

1

이 같은 입력을 생성,보기에 그런
$users = $this->Group->User->find('all', array('fields' => array('DISTINCT User.user_id')));
$this->set('user_ids', $users);

을 답변 (http://book.cakephp.org/view/1390/Automagic-Form-Elements).

용액은 :

$this->set('users', $this->Group->User->find('list')); 

그리고 뷰 : 추가 방법 그룹 제어기

echo $this->Form->input('user_id'); 

좋고 간단. 어쨌든 고마워!