首页 > 解决方案 > 如何在数据库中插入这个 mySbjects 数组?

问题描述

我一直在尝试将其插入数据库,但我不知道如何将这些信息存储到数据库中......用户和成绩之间的关系是多对多的,成绩和 mySubject 之间的关系是 One-太多。

<div class="row">
                    @foreach($grades as $grade)
                    <div class="card shadow mx-2 my-4">
                        <div class="card-header py-3">
                            <h6 class="m-0 font-weight-bold">
                                <div class="custom-control custom-checkbox">
                                    <input class="custom-control-input @error('grade') is-invalid @enderror" type="checkbox"  id="{{$grade->id}}" name="grade[]" value="{{ $grade->id }}"/>
                                    <label class="custom-control-label pt-1" for="{{$grade->id}}">{{$grade->name}}</label>
                                </div>
                            </h6>
                        </div>
                        <div class="card-body">
                           
                                @foreach($grade->subjects as $subject)
                                <div class="custom-control custom-checkbox mb-2">
                                    <input class="custom-control-input" type="checkbox" id="{{$grade->id}}{{$subject->id}}" name="mySubjects[{{$grade->id}}][]" value="{{ $subject->name }}"/>
                                    <label class="custom-control-label" for="{{$grade->id}}{{$subject->id}}">
                                        {{$subject->name}}
                                    </label>
                                </div>
                                @endforeach
                        </div>
                    </div>
                    @endforeach
                </div>

店铺功能

 public function store(Request $request)
{
      $user->grades()->sync($request->grade); 

            if($request->mySubjects){

               //. . . .

            }
        }

}

标签: laravel

解决方案


试试下面的代码:

 public function store(Request $request)
 {
    $user->grades()->sync($request->grade); 

        if($request->mySubjects){
           $mySubjects = $request-> mySubjects;
           $data = [];
           foreach($mySubjects as $subject){
                array_push($data,
                    'your database field name'=> $subject,
                    'created_at' => now()->toDateTimeString(),
                    'updated_at' => now()->toDateTimeString(),
           }
          YourModelName::insert($data);
        }
    }

 }

推荐阅读