我有一个使用select2小部件的下拉列表来获取客户联系
$getcontact = ArrayHelper::map(OpContact::find()->all(),'id','code');
<div class="col-md-10">'.
$form->field($model, 'contact_id')->widget(Select2::classname(), [
'data' => $getcontact,
'language' => 'en',
'options' => ['placeholder' => 'Select'],
'pluginOptions' => [
'allowClear' => true
],
])->label(false).'
现在,它只是一个普通的下拉列表,只显示联系人ID。我可以为它插入第二列并将所有数据放在一个表中。例如,我希望下拉列表看起来像这样我可以在一起看到ID和联系人姓名。
------------------------------
ID Contact ID
------------------------------
21 contact1
22 contact2
23 contact3
24 contact1
任何人都有任何想法?感谢
答案 0 :(得分:0)
如果你想只存储id并且看到id和contactID,联系人ID是你想要使用的id和代码的连续
$getcontact = ArrayHelper::map(OpContact::find()
->select('id, concat(id, code) as contactID')
->all(),'id','contactID');
如果你想要商店,你可以
$getcontact = ArrayHelper::map(OpContact::find()
->select('concat(id, code) as id, concat(id, code) as contactID')
->all(),'id','contactID');
答案 1 :(得分:0)
您无法显示所有这些字段,但您可以在查询中以字符串模式合并该字段,例如CONCAT,或者在您的foreach合并字符串中使用&#34; 。 &#34;一起
答案 2 :(得分:0)
如下所示更改ArrayHelper
。
$getcontact = ArrayHelper::map(OpContact::find()->all(),'id',function($model){ return $model->id.'-'.$model->code; });