2012-05-30 5 views
2

저는 Yii 프레임 워크와 gii 도구를 사용하여 여러 테이블의 중요한 기능을 생성하기 시작했습니다.Yii의 CRUD 생성기에 대해서

문제는 내가 일반적으로 생성 된 코드를 수정해야한다는 것입니다. 예를 들어, 모든 양식은 텍스트 입력 만 사용한다는 것을 알고 있습니다. 예를 들어 외래 키의 경우 사용자가 기본 키를 삽입 할 필요없이 다른 테이블의 레지스터를 선택할 수있는 위치를 선택해야합니다.

관련된보기 (_view.php, _form.php, ...)를 수정하면됩니다. 내 문제는 데이터베이스를 수정하고 코드를 다시 생성해야 할 때 시작됩니다. 이 경우에는 필자가 이전에 변경 한 사항을 유지하면서 관련된 파일을 하나씩 업데이트하면서 테이블별로 테이블을 이동해야합니다.

이 상황을 더 잘 처리 할 수있는 방법이 있습니까?

답변

1

그렇게하지 않아도됩니다. 예를 들어 외래 키를 사용하여 select를 생성 할 수 있습니다.

<?php echo CHtml::dropDownList('ModelName[language_id]',$model->language_id,CHtml::listData(Language::model()->findAll(), 'id', 'name'), array('prompt'=>'Select Language')); ?> 

첫번째 파라미터는 두번째 값이 세 번째 데이터이다 (만약 업데이트하는 경우, 그 값이 선택된다)이며, 상기 선택의 이름이고, 네 번째는 HTML 옵션 배열이다. CHtml::dropDownListCHtml::listData에 대한 자세한 정보.

여기에서 language_id은 외래 키이고 Language 테이블에는 idname 필드가 있습니다. 1 => 영어, 2 => 독일어 등

+0

답장을 보내 주셔서 감사합니다. 생성 된 코드의 뷰를 수정하고 있습니다. 하지만 코드를 재생성해야한다면 이러한 변경 사항을 덮어 쓸 수 있습니까? – yauros

+0

필요는 없습니다. 어떤 파일을 다시 생성할지 선택할 수 있습니다. 이렇게하면 수정 된 파일을 덮어 쓰지 않아도됩니다. 수정이 감지되면 색상 변경도 있다고 생각합니다. – adamors

+0

예, 맞습니다. 예를 들어 테이블에 열을 추가하면 영향을받는 파일을 다시 작성해야합니다. – yauros

1

옵션을 사용하여 두 번 이상 걸리는 양식 생성 기능이 필요할 경우 외래 키를 드롭 다운으로 표시 할 수 있도록 자신 만의 gii 템플릿을 만들 수 있습니다. Take a look at the guide 어떻게 해야할지 알아야합니다.

0

이 기능을 사용하려면 기존 gii 도구의 기능을 상속하는 gii 도구를 개발해야하며 CRUD를 만드는 동안 기존 클래스의 일부 수정을 의미합니다. 이것은 특정 요구 사항이며 gii 도구는 모든 사용자에게 적합한 일반 기능 만 제공합니다.

+0

Thx 모든 사람들에게 gii 가이드에서 기능을 확장하는 것에 대해 살펴 보겠습니다. – yauros

+1

이것은 giix 확장에서 이미 수행되었습니다. 내 대답을 보라. – jmclem

2

GiiX extension은 관계에 대한 드롭 다운을 생성합니다.

Gii 모델 생성을 사용하는 경우 GiiX는 더 나은 모델도 생성합니다.