如果我在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>
我想要显示nama_tipe&等级,所以,我这样创建:
<?=
$form->field($model, 'type_id')->dropDownList(
ArrayHelper::map(TipeKaryawan::find()->all(), 'id', 'nama_tipe'.'level'), ['prompt' => 'Select tipe']
)
?>
Yii2说未知财产TipeKaryawan :: nama_tipelevel 请建议
答案 0 :(得分:0)
试试这个:
<?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']); ?>
参考:http://www.yiiframework.com/doc-2.0/yii-helpers-basearrayhelper.html#map%28%29-detail
答案 1 :(得分:0)
我认为您应该在select中使用别名并使用别名
vars
答案 2 :(得分:0)
您可以在控制器中创建所需的数组,然后将其发送到视图。 Yii2是MVC。
在控制器中:
$tipes = <Your concatenated array...>;
return $this->render('model' => $model, 'tipes' => $ties);
在视图中:
*/*@var $ties array*/
<?= $form->field($model, 'type_id')->dropDownList($ties, ['prompt' => 'Select tipe'])?>
答案 3 :(得分:0)
在模型中添加下一个功能:
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']); ?>