繁体   English   中英

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

[英]Yii2 how to create table template using select2 widget

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

有人知道吗 谢谢

如果您只想存储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');

您不能全部显示它们,但是您可以在查询(如CONCAT)中以字符串模式合并该字段,或在您的foreach合并字符串中加上“。”

如下更改ArrayHelper

$getcontact = ArrayHelper::map(OpContact::find()->all(),'id',function($model){ return $model->id.'-'.$model->code; });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM