2012-02-05 1 views
4

Yii의 Gii의 CRUD 생성기를 다른 모델로 정의 된 관계에있는 모델에 사용하여 관련 엔터티의 인스턴스를 선택하기 위해 일종의 드롭 다운 또는 다른 방법을 만들 것이라고 기대했지만 대신 일반 텍스트 상자를 보여주었습니다.Yii의 Gii의 CRUD 생성기는 모델의 관계를 고려합니까?

Gii의 정상적인 작동입니까? 아니면 잘못된 것이 있습니까?
Model Event: relation 'Venue' => array(self::BELONGS_TO, 'Venue', 'venue')
Model Venue: relation 'Events' => array(self::HAS_MANY, 'Event', 'venue')

내가 개최지의 인스턴스를 따기의 몇 가지 방법을 보여주기 위해 이벤트 CRUD를 기다리고 있었다 :

은 모델과의 관계이다.

답변

9

Gii의 경우와 마찬가지로 양식을 생성 할 때 (CRUD 및 양식에만 해당) 모든 입력란은 텍스트 입력란이됩니다. 따라서 기본 gii CRUD 및 양식 생성기는 코드를 생성하는 동안 관계를 고려하지 않습니다.
해당 모델에 대해 수동으로보기 파일을 변경해야합니다. 즉, _form.php, 즉 이벤트입니다.
그래서 귀하의 요구에 대한 해당 파일을 다음과 같이 변경할 수 있습니다

/* As you have 'venue' field as the foreign key in the Event model */ 
<div class="row"> 
    <?php echo $form->labelEx($model, 'venue'); ?> 
    <?php echo $form->dropDownList($model,'venue', CHtml::listData(Venue::model()->findAll(), 
     'id', //this is the attribute name(of Venue model- could be the id of the venue) for list option values 
     'name' // this is the attribute name(of Venue model- could be the name of the venue) for list option texts 
     ) 
    ); ?> 
    <?php echo $form->error($model,'venue'); ?> 
</div> 

추가 변경/사용자 정의보다 약 CActiveForm 읽어하려면.
희망이 도움이됩니다.

+0

필요한 경우 설명을 요청하십시오. –

+1

아니, 당신은 이미 아주 분명히했습니다. 감사! 잘 수행했습니다. – Petruza

+1

@ bool. 정말 고맙습니다! –

1

Giix를 사용하면 찾고있는 내용에 맞게 작동합니다. 수동 수정이 필요하지 않습니다.

관련 문제