是否可以使用 ArrayHelper 获取随机值? Yii2

Is it possible to get random values using ArrayHelper? Yii2

如何从另一个 table 获取随机值?在我的员工 php 中,我有 3 条记录,所以有 3 个 id 值。在我的 ticket.php 中,一旦我创建了工单,它会自动从员工那里获取 ID 值 table 但它不是随机的,我该怎么做?

我现在每次创建工单时都会从员工那里获得相同的价值。

在ticketcontroller.php

 public function actionCreate()
{
    $model = new Ticket();

    if ($model->load(Yii::$app->request->post()) && $model->save()) {
        return $this->redirect(['view', 'id' => $model->id]);
    } else {
        $model->time_start = date('y-m-d h:i:s');
        $model->status = ('On Going');
        $model->employee_respond_id = array_rand('id');
        return $this->render('create', [
            'model' => $model,
        ]);
    }
}

在_form.php

<?= $form->field($model, 'employee_respond_id')->dropDownlist(
                                ArrayHelper::map(Employee::find()->all(), 'id', 'id'),
                                [
                                    'readOnly' => true,
                                    'style' => 'width:200px'
                                ]
); ?>         

试试这个方法:

public function actionCreate()
{
    $model = new Ticket();

    if ($model->load(Yii::$app->request->post()) && $model->save()) {
        return $this->redirect(['view', 'id' => $model->id]);
    } else {
        $employeeIDs = ArrayHelper::map(Employee::find()->all(), 'id', 'id'),
        $model->time_start = date('y-m-d h:i:s');
        $model->status = ('On Going');
        $model->employee_respond_id = array_rand($employeeIDs);
        return $this->render('create', [
            'model' => $model,
            'employeeIDs' => $employeeIDs
        ]);
    }
}

_form.php

<?= $form->field($model, 'employee_respond_id')->dropDownlist(
    $employeeIDs,
    [
       'readOnly' => true,
        'style' => 'width:200px'
    ]
); ?>

最好在下拉列表中使用员工姓名作为标签和 id 作为值,它仍然适用于随机函数。