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