1
필드 중 하나의 필드 이름이 type
이고이 양식이 enum('lost', 'found')
이고이 필드는 해당 필드 만 드롭 다운 목록으로 만들길 원합니다. 이 두 옵션은 lost
과 found
입니다. 제안 된 옵션
하나 보기Yii2 - db 구조에서 드롭 다운 목록 만들기 db에 삽입 된 데이터가 아닙니다
<?= $form->field($model, 'type')->dropDownList(
$items,
['prompt'=>'']
이를 사용했다 이것을 컨트롤러
$items = ArrayHelper::map(Ads::find()->all(), 'id', 'type');
하지만 당신은 그냥 DB에와있는 경우 삽입 된 데이터를 사용하고 알고 드롭 다운 목록을 클릭하면 DB에있는 모든 손실되고 발견 된 옵션이로드됩니다.
yii에게 데이터 대신 DB 구조와 규칙을 사용하도록 지시 할 수있는 방법이 있습니까?
모델에서 열거 형 부분을 나타내는 규칙을 찾을 수 없다는 것을 지적해야합니다. 괜찮습니까? 왜 이런 식으로?
나는 이것을 만들기 위해 Gii를 사용했습니다.
public function rules()
{
return [
[['type', 'explanation', 'image', 'cost', 'province_id', 'address'], 'required'],
[['type', 'explanation', 'image', 'address'], 'string'],
[['cost'], 'integer'],
[['province_id'], 'string', 'max' => 20],
[['province_id'], 'exist', 'skipOnError' => true, 'targetClass' => Province::className(), 'targetAttribute' => ['province_id' => 'name']],
];
}
은 그게 내가 그것에 대해 무슨 짓을했는지, GII가 만든 게 아니에요 :
은 모델에서 해당 유형은 문자열입니다. Guiti는 정상적인 방법으로 만들었습니다. '= $form-> field ($ model,'type ')?> – Amir
'type '필드가 enum 데이터 유형입니까? –
예,하지만 제가 말했듯이 저는 모델에서 열거 형 부분과 관련된 것이 아무것도없는 이유를 알지 못합니다. 모델에 규칙을 게시했습니다. – Amir