@KidsBout

Почему не попадает название в name?

Есть модель form.php
public $date;
И
public static function checkFormData()
    {
      $allNameEx = exercise::getAllExercises();

      foreach($allNameEx as $item)
      {
        $nameEx[] = $item['name'];
      }
        
        return $nameEx;
    }


Переменная return $nameEx; возвращает:
Array
(
    [0] => Sport
    [1] => Reading
    [2] => Paint
    [3] => Walk
)


В views/index
Я создаю форму
<?php $form = ActiveForm::begin(); ?>

    <?= $form->field($model, 'date')->widget(yii\jui\DatePicker::className(),['dateFormat' => 'yyyy-MM-dd'])?>

    <?= $form->field($model, 'name')->checkboxList(form::checkFormData()); ?>

    <div class="form-group">
        <?= Html::submitButton('Отправить', ['class' => 'btn btn-primary']) ?>
    </div>

    <?php ActiveForm::end(); ?>


У меня создается форма с чекбоксами и названиями чекбоксов как в массиве
Типа Sport, Reading и тд
<div id="form-name"><label><input type="checkbox" name="form[name][]" value="0"> Sport</label>
<label><input type="checkbox" name="form[name][]" value="1"> Reading</label>
<label><input type="checkbox" name="form[name][]" value="2"> Paint</label>
<label><input type="checkbox" name="form[name][]" value="3"> Walk</label></div>


В lable названия с массива тянутся, а вот в name="form[name][]" они не попадают, почему?

И как мне в контроллере получить доступ к проверке поставлена ли галочка на чекбоксе или нет?
  • Вопрос задан
  • 165 просмотров
Решения вопроса 1
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
И не должны туда попадать. Ключи массива попадают в value инпута. Этого вполне достаточно. Можете сменить
$nameEx[] = $item['name'];
на
$nameEx[$item['name']] = $item['name'];
но я бы сделал так:
public static function checkFormData()
    {
      $allNameEx = exercise::getAllExercises();
       return ArrayHelper::map($allNameEx, 'name', 'name');
    }

Эффект тот же но короче, теперь у Вас в value будет Sport и т.д.
Кстати почитайте обязательно: www.yiiframework.com/doc-2.0/guide-helper-array.ht...

И как мне в контроллере получить доступ к проверке поставлена ли галочка на чекбоксе или нет?

Перебрать пришедшие form[name]
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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