Yii2 Select2 多选依赖字段

Yii2 Select2 multiselect dependent fields

我该怎么做:我有 2 个多 select 字段 Select2,第一个字段用于 Branches,第二个字段用于 Workers。 当我选择分支机构时,在第二个字段中我需要显示在该分支机构工作的工人。

查看文件

<label><?= $model->getAttributeLabel('branch') ?></label>
    <?php echo Select2::widget([
        'name' => 'branch',
        'id' => 'branches',
        'theme' =>Select2::THEME_BOOTSTRAP,
        'value' => '',
        'data' => $branchList,
        'options' =>  [
            'placeholder' => Yii::t('app', 'Choose branch'),
            'multiple' => true,
        ],
        'pluginOptions' => [
            'tags' => true,
            'allowClear' => true,
        ],]);?>

    <label><?= $model->getAttributeLabel('Workers') ?></label>
    <?php echo Select2::widget([
        'name' => 'worker',
        'id' => 'workers',
        'theme' =>Select2::THEME_BOOTSTRAP,
        'value' => '',
        'data' => [],
        'options' =>  [
            'placeholder' => Yii::t('app', 'Choose workers'),
            'multiple' => true,
        ],
        'pluginOptions' => [
            'tags' => true,
            'allowClear' => true,
        ],]);
    ?>

JS

$("#branches").change(function(){
        change();    
    });

    function change() {        
        var selectValue = $("#branches").val();            
        $("#workers").empty();

        $.post( "'.Yii::$app->urlManager->createUrl('constructor/lists?id=').'"+selectValue,
                function(data){
                    $("#workers").html(data);
                }
            );

    };   

构造控制器

public function actionLists($id)
    {
        if ($id != null) {
            $ids = explode(",", $id);
            foreach ($ids as $id_branch) {
                $workers = Report::getWorkers($id_branch);
                if (count($workers) > 0) {
                    foreach ($workers as $worker) {
                        echo "<option value='" . $worker . "'>" . $worker . "</option>";
                    }
                } else {
                    echo "'<option>-</option>'";
                }
            }
        }
    }