Сохранить специфику c значение в PHP - PullRequest
0 голосов
/ 27 мая 2020

Я пытаюсь сохранить значение c в laravel. Здесь Select User необязательное поле, но в foreach l oop скрытое поле proj_id должно иметь значение. Предположим, что есть 5 строк, и я хочу сохранить только 2-й и 5-й user вместе с proj_id из скрытого поля. Здесь я хочу упомянуть, что в контроллере я также сохранил операцию удаления, чтобы я мог удалить ранее вставленную запись SAME PROJECT ID . Например, если я хочу сохранить 2-го и 3-го пользователя, тогда сначала будут удалены записи только 2-го и 3-го пользователей, а затем вставлены. В моем коде есть логическая ошибка, но я не нашел решения. Заранее спасибо

<form action="{{ url('/save-project') }}" method="POST">
 <tr>
 @foreach($projects as $val)
   <td>
    <input type="hidden" name="proj_id[]" value="{{$val->id}}"> 

    <select name="user_id[]">
         <option value="">Select User</option>
         <option value="2">x</option>
         <option value="4">y</option>
    </select>
   </td>
  @endforeach
 </tr>
 <input type="submit">
</form>

Контроллер

 $countUserID = count($user_id);
 assign_project::where('flag','Y')
                 ->WhereIn('proj_id',$request->proj_id)
                  ->delete();

for($i=0;$i<$countUserID;$i++){
  $assign_project = new assign_project();
  $assign_project->proj_id = $request->proj_id[$i];
  $assign_project->user_id = $request->user_id[$i];
  $assign_project->save();
 }

1 Ответ

2 голосов
/ 27 мая 2020
Поля

JSON набирают все большую популярность, так как они официально стали поддерживаться в MySQL 5.7.8. Даже популярный пакет Spat ie Laravel Medialibrary использует их, так почему бы нам не использовать их?

Чтобы создать поле JSON, все, что нам нужно сделать при миграции Laravel, - это использовать ->json() method:

$table->json('array_data');

Затем вам нужно указать вашей модели автоматически преобразовать этот столбец из JSON в массив:

class Product extends Model
{
    protected $casts = [
        'array_data' => 'array'
    ];
}

Таким образом, вы получите $array_data как массив и не нужно делать json_decode().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...