Laravel 如何将多维数组插入数据库`?

Laravel 如何将多维数组插入数据库`?,laravel,Laravel,我有一个名为vakkes的数组,我想插入到数据库中 array:15 [▼ "_token" => "VPC5jBKnYapzKv39aUsEFmDHJFwqKh1bqQ0lPp3M" "role" => "teacher" "last_name" => "Maya" "name" => "Vusumzi M

我有一个名为
vakkes
的数组,我想插入到数据库中

array:15 [▼
  "_token" => "VPC5jBKnYapzKv39aUsEFmDHJFwqKh1bqQ0lPp3M"
  "role" => "teacher"
  "last_name" => "Maya"
  "name" => "Vusumzi Maya"
  "email" => "maya.vusumzi@gmail.com"
  "phone" => "0719087970"
  "gender" => "Female"
  "identity" => "1233454567677"
  "street" => "30 Sabalele street,"
  "suburb" => "Port Elizabeth"
  "city" => "Port Elizabeth"
  "province" => "Eastern Cape"
  "code" => "6211"
  "klasses" => array:3 [▼
    0 => "1"
    1 => "2"
    2 => "3"
  ]
  "vakkes" => array:3 [▼
    1 => array:1 [▼
      0 => "Mathematics"
    ]
    2 => array:1 [▼
      0 => "Physical Science"
    ]
    3 => array:2 [▼
      0 => "Mathematics"
      1 => "Physical Science"
    ]
  ]
]
这是我的控制器

public function store(Request $request)
    {
        ...

        $user = new User();
        $user->last_name = $request->last_name;
        $user->name = $request->name;
        $user->email = $request->email;
        $user->phone = $request->phone;
        $user->password = Hash::make($password);
        $user->gender = $request->gender;
        $user->identity = $request->identity;
        $user->street = $request->street;
        $user->suburb = $request->suburb;
        $user->city = $request->city;
        $user->province = $request->province;
        $user->code = $request->code;
        $user->school = $request->school;
        $user->save();
        
        $user->attachRole($request->role);
  

        $user->klasses()->sync($request->klasses); 

            if($request->vakkes){

               // What to write here?
                
            }

        return redirect()->back()->with('message', $user->name . ' has been created successfully');
    }


我与
Klass
Vakke
模型有一对多的关系

您可以这样做

$user->klasses()->each(function (Klass $klass) use ($request) {
   $klass->vakke()->sync($request['vakkes'][$klass->id]); 
})
在这里,我获取
$user->klass
并从
$request['vakke']
中获取每个
klass
vakke,并同步关系

更好的方法


你可以使用数据库,因此,您将拥有一个
UserObserver
,当新用户创建时,您将同步您的
Klass
Vakke
关系。

您是否允许在
Vakke
表中重复值,因为正如您的请求所述,您将对同一用户使用
Mathematics
Physical Science
进行重复?是的允许。。。用户可以有Klass,在这些类中可以有vakkes