Yii2:将复选框false保存为NULL

时间:2017-09-19 14:32:21

标签: checkbox yii2 active-form

在Yii2中,我有ActiveForm复选框字段。在mysql数据库中,tinyint(1)列可以是NULL

我需要取消选中复选框(false值)才能在数据库中保存为NULL。目前,当取消选中复选框时,它会保存为(int) 0

false值保存为NULL的正确方法是什么?

以下是模型:

class ProductToProductCategory extends ActiveRecord {

    public function rules()
    {
        return [
            ['product_category_id', 'required'],
            ['product_category_id', 'integer'],
            ['is_main', 'boolean'],
        ];
    }
}

以下是观点:

<?= $form->field($model, "is_main")->checkbox() ?>

3 个答案:

答案 0 :(得分:1)

从未尝试过,但你应该能够实现保存模型的beforeSave方法。

$("#item1").css("display", "none");
$("#item2").css("display", "none");

答案 1 :(得分:1)

public function rules()
{
    return [
        ['product_category_id', 'required'],
        ['product_category_id', 'integer'],
        ['is_main', 'boolean'],
        ['is_main', 'filter', function ($value) {
            // return value you need
            return $value ?: null;
        }, 'skipOnError' => true],
    ];
}

答案 2 :(得分:-1)

只需通过取消选中选项

libssl.so.1.0.0