Yii2では、チェックボックスのフィールドにActiveForm
があります。 mysqlデータベースではtinyint(1)
列であり、NULL
になります。Yii2:チェックボックスを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() ?>
アイデアのおかげで、私は 'beforeSave()'の承知していますが、私はそれならばこれを行うための適切な方法を確認していない... 'beforeSave'は世界的に動作しますが、私がしたいと思いますこの振る舞いを特定のシナリオに限定し、プロジェクト全体に広げないようにします。 – cronfy
保存するシナリオをbeforeSaveにチェックインする必要があります。更新された答え。 – gmazzotti