Yii2选择下拉文本

Yii2选择下拉文本,yii2,Yii2,如果我在mysql中有这样一个表: mysql> select * from tipe_karyawan; +----+-----------+-------+ | id | nama_tipe | level | +----+-----------+-------+ | 1 | Stylist | 1 | | 2 | Stylist | 2 | | 3 | Stylist | 3 | | 4 | Therapist | 0 | +---

如果我在mysql中有这样一个表:

mysql> select * from tipe_karyawan;
+----+-----------+-------+
| id | nama_tipe | level |
+----+-----------+-------+
|  1 | Stylist   |     1 |
|  2 | Stylist   |     2 |
|  3 | Stylist   |     3 |
|  4 | Therapist |     0 |
+----+-----------+-------+
4 rows in set (0.00 sec)

mysql>
 <?=
$form->field($model, 'type_id')->dropDownList(
        ArrayHelper::map(TipeKaryawan::find()->all(), 'id', 'nama_tipe'.'level'), ['prompt' => 'Select tipe']
)
?>
我想显示nama_tipe&level,因此,我创建如下:

mysql> select * from tipe_karyawan;
+----+-----------+-------+
| id | nama_tipe | level |
+----+-----------+-------+
|  1 | Stylist   |     1 |
|  2 | Stylist   |     2 |
|  3 | Stylist   |     3 |
|  4 | Therapist |     0 |
+----+-----------+-------+
4 rows in set (0.00 sec)

mysql>
 <?=
$form->field($model, 'type_id')->dropDownList(
        ArrayHelper::map(TipeKaryawan::find()->all(), 'id', 'nama_tipe'.'level'), ['prompt' => 'Select tipe']
)
?>

Yii2 said未知财产TipeKaryawan::nama_tipelevel 请告知

尝试以下方法:

<?php 
  $result=ArrayHelper::map(TipeKaryawan::find()->all(), 'id',
  function($model, $defaultValue) {
      return $model['nama_tipe'].'-'.$model['level'];
  }
  );
?>

<?=  $form->field($model, 'type_id')->dropDownList($result  , ['prompt' => 'Select tipe']); ?>

请参阅:

尝试以下操作:

<?php 
  $result=ArrayHelper::map(TipeKaryawan::find()->all(), 'id',
  function($model, $defaultValue) {
      return $model['nama_tipe'].'-'.$model['level'];
  }
  );
?>

<?=  $form->field($model, 'type_id')->dropDownList($result  , ['prompt' => 'Select tipe']); ?>


请参阅:

我认为您应该在select and use alias中执行连接

<?=
    $form->field($model, 'type_id')->dropDownList(
            ArrayHelper::map(TipeKaryawan::find()->
                    select(' id, concat(nama_tipe, level) as description ')->all(), 
                      'id', 'description'), ['prompt' => 'Select tipe']
    )
?>

我认为您应该在select and use alias中执行连接

<?=
    $form->field($model, 'type_id')->dropDownList(
            ArrayHelper::map(TipeKaryawan::find()->
                    select(' id, concat(nama_tipe, level) as description ')->all(), 
                      'id', 'description'), ['prompt' => 'Select tipe']
    )
?>

您可以在控制器中创建所需的数组,然后将其发送到视图。Yii2是MVC

在控制器中:

$tipes = <Your concatenated array...>;

return $this->render('model' => $model, 'tipes' => $ties);
$tipes=;
返回$this->render('model'=>$model,'tipes'=>$ties);
鉴于:

*/*@var $ties array*/
 <?= $form->field($model, 'type_id')->dropDownList($ties, ['prompt' => 'Select tipe'])?>
*/*@var$ties数组*/

您可以在控制器中创建所需的数组,然后将其发送到视图。Yii2是MVC

在控制器中:

$tipes = <Your concatenated array...>;

return $this->render('model' => $model, 'tipes' => $ties);
$tipes=;
返回$this->render('model'=>$model,'tipes'=>$ties);
鉴于:

*/*@var $ties array*/
 <?= $form->field($model, 'type_id')->dropDownList($ties, ['prompt' => 'Select tipe'])?>
*/*@var$ties数组*/

在您的型号中添加下一个功能:

public function getConcatenate() {
   return this->nama_type . ' ' . $this->level;
}
要获取此字段,请执行以下操作:

再次在模型中添加:

public static function getList() {
 $cat = TipeKaryawan::find()->all();
 return yii\helpers\ArrayHelper::map($cat, 'id', 'concatenate');
}
在您的视图中

<?=  $form->field($model, 'type_id')->dropDownList( TipeKaryawan::getList() ,   ['prompt' => 'Select tipe']); ?>

在您的型号中添加下一个功能:

public function getConcatenate() {
   return this->nama_type . ' ' . $this->level;
}
要获取此字段,请执行以下操作:

再次在模型中添加:

public static function getList() {
 $cat = TipeKaryawan::find()->all();
 return yii\helpers\ArrayHelper::map($cat, 'id', 'concatenate');
}
在您的视图中

<?=  $form->field($model, 'type_id')->dropDownList( TipeKaryawan::getList() ,   ['prompt' => 'Select tipe']); ?>


谢谢,它可以工作,但是在wbraganca动态表单中有点奇怪,微调器仍然加载了Hanks,它可以工作,但是在wbraganca动态表单中有点奇怪,微调器仍然加载了Hanks