yii2에서 드롭다운 목록을 만드는 방법

만드는 법dropdownyii2를 사용하여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-']) ?>