Yii2选择下拉文本
如果我在mysql中有这样一个表: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> 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