Yii2 - 从dropDownList中删除项目

In my ticket form I have a dropDownList for the employees, and in the employees model I have employee_status which is 'Available', 'Not Available'

If I change the status of the employee to 'Not Available' how am I going to remove it automatically from the dropDownList in Ticket form?

The Employee Dropdown from Ticket

<?= $form->field($model, 'employee_id')->dropDownlist(
                 ArrayHelper::map(Employee::find()->all(), 'id', 'employee_name'),
                 [
                  'prompt' => 'Select Employee ID',
                  'style' => 'width:200px'
          ]); ?>

I finally get it

<?= $form->field($model, 'employee_id')->dropDownlist(
                       ArrayHelper::map(Employee::find()->where(['status' => 'Available'])->all(), 'id', 'employee_name'),
                       [
                        'prompt' => 'Select Employee ID',
                        'style' => 'width:200px'
                      ]); ?>

Perform a find query with your given criteria.

Since we only ever want available employees in our list, we can write:

Employee::find('status=:status', [
    ':status' => 'Available'
])->all();

You need to create a dependent dropdown for get employee list according to employee_status.Write down below code in view file for creating dependent dropdown :-

use yii\helpers\ArrayHelper;

echo $form->field($model, 'employee_status')->dropDownList([0=>'Available' , 1 => 'Not Available'],
             [
              'prompt' => 'Select Employee Status',
              'style' => 'width:200px',
              'onchange'=>'$.post( "'.Yii::$app->urlManager->createUrl('site/get-employee?status=').'"+$(this).val(), function( data ) {
              $( "select#employee-employee_id" ).html( data );
            });']); 

<?= $form->field($model, 'employee_id')->dropDownlist(
             ArrayHelper::map(Employee::find()->all(), 'id', 'employee_name'),
             [
              'prompt' => 'Select Employee ID',
              'style' => 'width:200px'
      ]); ?>

Now write a controller action for get data for child dropdown. Controller action code like below :- SiteController.php

public function actionGetEmployee($status)
{               
    $employee= \common\models\Employee::find()
            ->where(['status' => $status])
            ->orderBy('id DESC')
            ->all();

    if (!empty($employee)) {
        foreach($employee as $employee) {
            echo "<option value='".$employee->id."'>".$employee->name."</option>";
        }
    } else {
        echo "<option>-</option>";
    }

}

Note : change the model namespace according to your code.