2012-01-10 2 views
0

나는 방금 yii을 사용하는 법을 배우기 시작했으며, 이미 기본적인 것들을 관리하고 있습니다.Yii가 알려진 사용자로부터 드롭 다운 목록을 생성하는 방법?

의 나는 두 가지 간단한 테이블이 있다고 가정 해 봅시다 : "사용자"와 관계가있다 "프로젝트를"1 (하나의 사용자가 많은 프로젝트를 가질 수 있습니다)

내가 GII를 사용하여 CRUD를 생성하지만, "작성에 많은에/edit user page "드롭 다운을 제공하지는 않지만 사용자 ID를 입력해야하는 텍스트 필드 만 제공합니다.

프로젝트를 편집 할 때 사용자를 선택할 수있는 드롭 다운 목록이 필요합니다 (요소에 사용자 이름 목록이 표시되어야 함).

나는 GII는이 작업을 수행하는 가장 좋은 방법이 될 것입니다 무엇이

의 컨트롤러와 뷰 코드를 생성 할 수 없습니다 같은데요? 사용자가 목록을 생성 할 수있는 샘플 코드를 찾기 http://www.yiiframework.com/doc/guide/1.1/en/database.arr

public function relations() 
{ 
    return array(
     'projects_rel'=>array(self::BELONGS_TO, 'Users', 'user_id'), 
    ); 
} 

public function relations() 
{ 
    return array(
     'users_rel'=>array(self::HAS_MANY, 'Projects', 'project_id'), 
    ); 
} 
+0

공공 함수 프로젝트()에서 관계를 정의한 이유는 모든 관계가 relations() 메소드 –

+0

Lapsus manus, apologies로 이동해야합니다. 함수는 public function relations()입니다. 원래 게시물을 바로 잡았습니다. – Martin

답변

6

의 지침에 따라

이미 관계를 선언 한

<?php 
    $form = $this->beginWidget('CActiveForm', array(
       'id' => 'project-form', 
       'enableAjaxValidation' => true, 
      )); 

?>

<?php echo $form->dropDownList($model, 'user_id', 
       CHtml::listData(Projects::model()->with('projects_rel')->findAll(), 'id', 'username'), 
       array('style'=>'width:150px;') 
       ); ?> 
+0

투표하면 유용하다고 생각됩니다. –

+0

나는 당신을 매우 유용하다고 생각했습니다! 하지만 불행하게도 나는 15 명 미만으로 투표 할 수 있습니다. 죄송합니다. – Martin

3

체크 아웃 생성 확장 CRUDs 이러한 GII 확장 :

모두 할 수 있습니다 github
  • Giix
    • Gii Template Collection (FullModel, FullCRUD)
      • 최신 개발 관계 inp로 양식 렌더링 uts. GTC는 이러한 입력에 대해 사용자 정의 할 수있는 관계 위젯을 사용합니다.

    0

    $ this-이> performAjaxValidation ($ 모델) 항목에

    컨트롤러에

    또는 당신이해야하는 대신 하나의 창조의 주석을 해제하는 것을 잊지 마세요!

    관련 문제