Laravel проблема добавления / удаления значений полей ввода - PullRequest
1 голос
/ 13 июля 2020

Я использую поля ввода для добавления / удаления с помощью jquery, и возникают проблемы, когда я хочу обновить значения.

В методе store () foreach l oop извлекает все поля ввода, которые я добавил, в то время как в методе update () foreach l oop извлекается только первый ввод.

Как я могу это исправить?

У меня есть две таблицы атрибутов (id, name) и attribute_option (id, attribute_id, attribute_value ").

В edit.balde. php

<script type="text/javascript">
   $("#add").click(function(){
     addRow();
   }}

   function addRow(){
     $("optionsTable").append('<tr><td><input type="text" name="value[]" class="form-control"</td><td><button type="button" class="remove-tr">Remove</button></td></tr>);
   };

   $(document).on('click','.remove-tr', function(){
     $(this).parents('tr).remove();
   });
</script>

<button type="button" id="add">Add row</button>
@foreach($attribute_options as $key=>$option)
<tr>
   <td>
     <input type="hidden" name="option_id[]" value="{{ $option->id }}">
     <input type="text" name="value[]" value="{{ $option->attribute_value }}"> 
   </td>
   <td>
     <button type="button" class="remove-tr">Remove</button>
   </td>
</tr>
@endforeach

в обновлении действия моего контроллера ()

if($request->has('value)){
  $options = $request->value;
  $option_id = $request->option_id;
  foreach($options as $value){
     AttributeOption::where('id','=',$option_id)->update(array(
      'attribute_value' => $value
     ));
  }
}

1 Ответ

1 голос
/ 13 июля 2020

Поскольку $option_id также является массивом и, следовательно, также должен читаться как массив:

if($request->has('value')){
  $options = $request->value;
  $option_id = $request->option_id;
  foreach($options as $key => $value){
     AttributeOption::where('id','=',$option_id[$key])->update(array(
      'attribute_value' => $value
     ));
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...