Yii2如何使用select2小部件创建表模板

时间:2017-05-30 02:22:00

标签: php html yii2 jquery-select2

我有一个使用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

任何人都有任何想法?感谢

3 个答案:

答案 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; });