Задать вопрос
@tursumbekov
PHP, CMS, frontend

Yii2: не отправляются значения checkbox'а?

Есть чекбоксы на 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:
9b4b004a0a16466ebb8c22857b43f7f2.png
Так вот, при отправке формы, не зависимо от того, отмечены чекбоксы или нет, приходит значение 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;
    }
}

Правил для чекбоксов нет.
  • Вопрос задан
  • 2679 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 2
vakorovin
@vakorovin
Разработчик
покажите rules
Ответ написан
@tursumbekov Автор вопроса
PHP, CMS, frontend
Решил установкой правил вида дефолтного значения:
[['agency_full', 'design_studio'], 'default', 'value' => '0'],
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы