Laravel - Как правильно получить значение флажков с одинаковым именем? - PullRequest
0 голосов
/ 17 июня 2020

Моя модель (таблица с двумя первичными ключами и внешними ключами одновременно):

class FormationPersonnel extends Model
{
  protected $fillable = ['cin', 'id_form'];
  public $incrementing = false;
}

Я создаю флажки с помощью JQuery, Ajax вот так:

var grabData = "";
    for (let i = 0; i < data.length; i++) {
      grabData +=
      `<div class="col-lg-4 col-sm-6">
      <div class="custom-control custom-checkbox">
        <input type="checkbox" name="cin[]" id="`+data[i]["cin"]+`" class="custom-control-input" value="`+data[i]["cin"]+`">
        <label for="`+data[i]["cin"]+`" class="custom-control-label">`+data[i]["cin"]+' '+data[i]["nom"]+' '+data[i]["prenom"]+`</label>
      </div>
      </div>`;
    }
    personnelsInput.html("");
    personnelsInput.append(grabData);

который я даю флажкам то же имя, что и:

 name="cin[]"

В моем контроллере я использую этот код, но не сохраняю данные из флажков:

$cins = $request->cin; //I get inputs like this
foreach ($cins as $cin) {
$form_pers = new FormationPersonnel; //create new record
if ($request->has($cin)) { 
  $form_pers->id_form = $request->input('id_form');
  $form_pers->cin = $request->input($cin);
  $form_pers->save(); //save data
  }
}

Что такое правильный путь?

1 Ответ

1 голос
/ 17 июня 2020

Правильный способ проверить, есть ли в Model cin или нет:

Отредактировано

на основе добавленного нами комментария. Думаю, я знаю, что вы пытаетесь сделать, поэтому сделайте это, как показано ниже, чтобы получить то, что вам нужно.

  • примечание

вы не знаете, что $cins значений, поэтому вы используете if(). Нет необходимости проверять, установлен ли у пользователя флажок (флажок) или нет. потому что проверенное значение отправляется только по форме. пожалуйста, попробуйте узнать, какие данные у вас есть в вашей переменной перед кодированием.

Я рекомендовал вам использовать dd () или print_r () или другие https://laraveldaily.com/echoing-dd-vs-var_dump-vs-print_r/, чтобы проверить данные, которые вы получили ваша переменная.

$cins = $request->cin; //getting all checked (from checkbox) data

foreach ($cins as $cin) {
 $form_pers = new FormationPersonnel; //new model
 $form_pers->id_form = $request->id_form; //get name="id_form" from form
 $form_pers->cin = $cin; //put cin value (loop)
 $form_pers->save(); //save
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...