无法在 Yii2 中使用 dropDownList 取消设置外键值

Cannot unset foreign key value using dropDownList in Yii2

我有一个 Yii2 表单视图,代码如下。

<?= $form->field($model, 'field1')->dropDownList(ArrayHelper::map($fieldList, 'id', 'label'), ['prompt' => '']) ?>
上面的

field1 实际上是一个 VARCHAR,MySQL table 中的 NULLable 外键。如果我取消我的选择,选择空白选项并保存,我会收到外键完整性错误。

基本上,Yii2 试图将行更新为 '' 而不是 NULL。我该如何解决上述情况?

我也试过 array_merge 而不是 ['prompt' => ''] 来添加一个带有 NULL 值的空白字段,仍然没有快乐。

编辑: 我最终检查了控制器中的空白,但理想情况下我不应该这样做。这是一个错误还是我做错了什么?

$loaded = $model->load(Yii::$app->request->post());

if ($model->field1 == '')
    $model->field1 = null;

if ($loaded && $model->save()) {
}

您是否尝试过将此添加到您的模型规则中?:

public function rules()
{
    return [
      ....
      [['field1'], 'default'], // set "field1" as null if they are empty
    ];
}

您的约束错误也类似于您的相关 table 字段 1 无法设置为空。