php - formularios - yii2 form
Seleccionar o lista desplegable de CActiveRecord en Yii (3)
Tengo types
tablas y quiero construir selectbox
con todos los valores de esta tabla. En mi controlador escribí este código.
$allRegistrationTypes = RegistrationType::model()->findAll();
$this->render(''index'', array(''allRegistrationTypes'' => $allRegistrationTypes))
¿Cómo construir selectbox en el archivo de vista?
Bueno, entonces es bastante simple todo lo que tienes que hacer es primero crear datos de lista como
CHtml::ListData(allRegistrationTypes,''value you want to pass when item is selected'',''value you have to display'');
por ejemplo
typeList = CHtml::ListData(allRegistrationTypes,''id'',''type'');
Ahora recuerde que tanto la identificación como el tipo son campos en la tabla
ahora todo lo que tienes que hacer es si estás usando formulario entonces
<?php echo $form->dropDownList($model, ''type_id'', $typeList, array(''empty''=>''Select a tyoe'')); ?>
y si necesita múltiple puede pasar multiple => multiple
en la matriz como htmlOptions
Método más sencillo para obtener "Seleccionar recuadro" en YII Framework:
<div class="row">
<?php
echo $form->labelEx($model,''county'');
$data = CHtml::listData(County::model()->findAll(), ''id'', ''county'');
$htmlOptions = array(''size'' => ''1'', ''prompt''=>''-- select county --'', );
echo $form->listBox($model,''county'', $data, $htmlOptions);
echo $form->error($model,''county'');
?>
</div>
Buena suerte..
Utilizaría CHtml::dropDownList
o activeDropDownList
si hay un modelo "principal" y desea aprovechar sus reglas de validación.
Si desea hacer que el elemento <select>
tenga capacidad de selección múltiple, ingrese ''multiple'' => ''multiple''
y ''size'' => X
como parte del parámetro $htmlOptions
.