Yii 2-只有一个选择获取选项

wn9m85ua  于 2022-11-09  发布在  其他
关注(0)|答案(1)|浏览(137)

我遇到了一个问题。我有3个选择输入,我想用相同的选项填充。第一个输入得到选项,但另外两个没有。我已经尝试了一切。最后一件事,我尝试了选择3个不同的查询,并分别填充每一个。不幸的是,我得到了相同的问题。
谢谢你的建议。

控制器

$dataPbxObj1 = Sipend::find()
        ->select('cc_sip_end.*')
        ->leftJoin('cc_reseller_to_pbx', '`cc_reseller_to_pbx`.`ID_PBX` = `cc_sip_end`.`id`')
        ->where(["in", "cc_reseller_to_pbx.id_cc_reseller", $reseller->id_cc_reseller])->all();

    $dataPbxObj2 = Sipend::find()
        ->select('cc_sip_end.*')
        ->leftJoin('cc_reseller_to_pbx', '`cc_reseller_to_pbx`.`ID_PBX` = `cc_sip_end`.`id`')
        ->where(["in", "cc_reseller_to_pbx.id_cc_reseller", $reseller->id_cc_reseller])->all();

    $dataPbxObj3 = Sipend::find()
        ->select('cc_sip_end.*')
        ->leftJoin('cc_reseller_to_pbx', '`cc_reseller_to_pbx`.`ID_PBX` = `cc_sip_end`.`id`')
        ->where(["in", "cc_reseller_to_pbx.id_cc_reseller", $reseller->id_cc_reseller])->all();

    $dataPbx1 = ArrayHelper::map($dataPbxObj1,'id','popis');
    $dataPbx2 = ArrayHelper::map($dataPbxObj2,'id','popis');
    $dataPbx3 = ArrayHelper::map($dataPbxObj3,'id','popis');

视图(所有这些选择都相同)

<?=$form->field($modelSip, 'ID_PBX')->widget(Select2::className(),
               ["data" => $dataPbx3,'hideSearch' => true]) ?>
20jt8wwn

20jt8wwn1#

您可能需要使用唯一的ID-默认情况下,Yii根据字段名生成ID,但是如果有3个相同的字段,ID将是相同的,Select 2 init将只应用于第一个字段。

<?=$form->field($modelSip, 'ID_PBX')->widget(Select2::className(), [
    'options' => ['id' => 'ID_PBX1'],
    'data' => $dataPbx,
    'hideSearch' => true,
]) ?>

<?=$form->field($modelSip, 'ID_PBX')->widget(Select2::className(), [
    'options' => ['id' => 'ID_PBX2'],
    'data' => $dataPbx,
    'hideSearch' => true,
]) ?>

<?=$form->field($modelSip, 'ID_PBX')->widget(Select2::className(), [
    'options' => ['id' => 'ID_PBX3'],
    'data' => $dataPbx,
    'hideSearch' => true,
]) ?>

顺便说一句:你不需要查询选项列表3次,你可以这样做一次,并使用相同的结果在3个字段。

相关问题