Есть чекбоксы на yii2 созданные через ActiveForm:
<?= $form->field($model, 'agency_full', [
'template' => '{input}{label}',
'options' => [
'class' => 'checkbox-group'
]
])->checkbox(['class' => 'checkbox'], false)->label( 'Агентство полного цикла', ['class' => 'for-checkbox']); ?>
<?= $form->field($model, 'design_studio', [
'template' => '{input}{label}',
'options' => [
'class' => 'checkbox-group'
]
])->checkbox(['class' => 'checkbox'], false)->label( 'Дизайн-студия', ['class' => 'for-checkbox']); ?>
Генерируют такой код:
<div class="checkbox-group field-signupform-agency_full">
<input type="hidden" name="SignupForm[agency_full]" value="0">
<input type="checkbox" id="signupform-agency_full" class="checkbox" name="SignupForm[agency_full]" value="1">
<label class="for-checkbox" for="signupform-agency_full">Агентство полного цикла</label>
</div>
Поля в MySQL:
Так вот, при отправке формы, не зависимо от того, отмечены чекбоксы или нет, приходит значение NULL. Хотя должно приходить 0 или 1. В чём может быть проблема?
Модель:
class SignupForm extends Model
{
...
public $agency_full;
public $design_studio;
...
public function signup()
{
if (!$this->validate()) {
return null;
}
$user = new User();
...
$user->agency_full = $this->agency_full;
$user->design_studio = $this->design_studio;
...
return $user->save() ? $user : null;
}
}
Правил для чекбоксов нет.