만드는 법dropdown
에yii2
를 사용하여activeform
모델은요?의 모든 방법이 변경되었기 때문에yii2
새로운 것에서는 어떻게 되나요?
질문에 대한 답변
마치
<?php use yiihelpersArrayHelper; use backendmodelsStandard; ?>
<?= Html::activeDropDownList($model, 's_id',
ArrayHelper::map(Standard::find()->all(), 's_id', 'name')) ?>
Yii2의 ArrayHelper는 Yii 1.1의 CHtml 목록 데이터를 대체합니다.[컨트롤러에서 어레이 데이터를 로드해 주세요]
편집
컨트롤러에서 데이터를 로드합니다.
컨트롤러
$items = ArrayHelper::map(Standard::find()->all(), 's_id', 'name'); ... return $this->render('your_view',['model'=>$model, 'items'=>$items]);
표시중
<?= Html::activeDropDownList($model, 's_id',$items) ?>
이미 답을 찾은 것 같습니다만, 액티브 폼을 언급하신 이상, 조금 차이가 나더라도 하나 더 추가하겠습니다.
<?php
$form = ActiveForm::begin();
echo $form->field($model, 'attribute')
->dropDownList(
$items,
// Flat array ('id'=>'label')
['prompt'=>'']
// options
);
ActiveForm::end(); ?>
위의 몇 가지 좋은 솔루션이 있습니다.저희 솔루션은 두 가지 조합입니다(솔루션을 찾고 있습니다).
@Sarvar Nishonboyev의 솔루션은 폼 입력 라벨과 오류 메시지에 대한 도움말 블록을 계속 생성하기 때문에 좋습니다.
나는 다음과 같이 했다.
<?php use yiihelpersArrayHelper; use appmodelsProduct; ?> <?= $form->field($model, 'parent_id')
->dropDownList(
ArrayHelper::map(Product::find()->asArray()->all(), 'parent_id', 'name')
) ?>
다시 한 번, @Sarvar Nishonboev’s and @ippi에게 모든 신용을 부여합니다.
이 질문에는 좋은 답이 많은 것 같다.그래서 제가 자세한 답변을 드리도록 하겠습니다.
활성 형식 및 하드코드된 데이터
<?php
echo $form->field($model, 'name')->dropDownList(['1' => 'Yes', '0' => 'No'],['prompt'=>'Select Option']); ?>
또는
<?php
$a= ['1' => 'Yes', '0' => 'No'];
echo $form->field($model, 'name')->dropDownList($a,['prompt'=>'Select Option']); ?>
DB 테이블의 활성 형식 및 데이터
ArrayHelper를 사용하기 때문에 먼저 다음 네임스페이스에 추가합니다.
<?php
use yiihelpersArrayHelper; ?>
Array Helper에는 어레이 맵 처리에 사용할 수 있는 풀 함수가 많이 있습니다().이 함수는 다차원 배열 또는 객체 배열에서 (키와 값의 쌍으로 구성된) 맵을 만드는 데 도움이 됩니다.
<?php
echo $form->field($model, 'name')->dropDownList(ArrayHelper::map(User::find()->all(),'id','username'),['prompt'=>'Select User']); ?>
활성 형태의 일부가 아니다
<?php
echo Html::activeDropDownList($model, 'filed_name',['1' => 'Yes', '0' => 'No']) ; ?>
또는
<?php
$a= ['1' => 'Yes', '0' => 'No'];
echo Html::activeDropDownList($model, 'filed_name',$a) ; ?>
활성 형식이 아닌 DB 테이블의 데이터
<?php
echo Html::activeDropDownList($model, 'filed_name',ArrayHelper::map(User::find()->all(),'id','username'),['prompt'=>'Select User']); ?>
이것 좀 봐.
use yiihelpersArrayHelper; // load classes use appmodelsCourse;
..... $dataList=ArrayHelper::map(Course::find()->asArray()->all(), 'id', 'name'); <?=$form->field($model, 'center_id')->dropDownList($dataList,
['prompt'=>'-Choose a Course-']) ?>