插入 Laravel 中的两个表
Insert into two tables in Laravel
我有一个注册表单,在该表单中,用户可以 select 从下拉列表中选择 Farmer 或 Buyer列表。如果用户 select Farmer 那么我想将新创建的 user_id
添加到 farmer table .如果用户 select Buyer 那么我想将新创建的 user_id
添加到 buyer table .
但现在的行为是当用户从下拉列表中选择 select Buyer 时。新创建的user_id
保存在farmertable而不是buyertable.
如何将新建的user_id
保存到对应的table中?
下面是我的代码:
$user = User::create([
'username' => $data['username'],
'name' => $data['name'],
'email' => $data['email'],
'password' => Hash::make($data['password']),
'group' => $data['group'],
]);
$farmer = Farmer::make([
'user_id' => $user->id,
]);
$user->farmer()->save($farmer);
return $user;
我认为你有几个问题:
首先,您没有使用您描述的支票;
there is select form that decide if user is farmer or buyer
其次,您只是在创建一个农民,与您描述的买家无关
if the user is buyer, then buyer table get his/her user_id
解决方案,您是否需要先使用检查,然后适当地创建那些 table 条目。
此外,请将您的代码包装在交易中:
DB::transaction(function(){
// Your code here...
})
喜欢这样。
$decide = $data['select_option'];
if($decide == 'farmer'){
$farmer = Farmer::create([
'user_id' => $user->id,
]);
}
elseif($decide == 'buyer'){
$buyer = Buyer::create([
'user_id' => $user->id,
]);
}
谢谢大家的帮助,我找到了解决以下问题的最简单方法:
if ($user->group == 2) {
$buyer = Buyer::create([
'user_id' => $user->id,
]);
}elseif ($user->group == 3) {
$farmer= Farmer::create([
'user_id' => $user->id,
]);
}
$user->save();
return $user;
我有一个注册表单,在该表单中,用户可以 select 从下拉列表中选择 Farmer 或 Buyer列表。如果用户 select Farmer 那么我想将新创建的 user_id
添加到 farmer table .如果用户 select Buyer 那么我想将新创建的 user_id
添加到 buyer table .
但现在的行为是当用户从下拉列表中选择 select Buyer 时。新创建的user_id
保存在farmertable而不是buyertable.
如何将新建的user_id
保存到对应的table中?
下面是我的代码:
$user = User::create([
'username' => $data['username'],
'name' => $data['name'],
'email' => $data['email'],
'password' => Hash::make($data['password']),
'group' => $data['group'],
]);
$farmer = Farmer::make([
'user_id' => $user->id,
]);
$user->farmer()->save($farmer);
return $user;
我认为你有几个问题:
首先,您没有使用您描述的支票;
there is select form that decide if user is farmer or buyer
其次,您只是在创建一个农民,与您描述的买家无关
if the user is buyer, then buyer table get his/her user_id
解决方案,您是否需要先使用检查,然后适当地创建那些 table 条目。
此外,请将您的代码包装在交易中:
DB::transaction(function(){
// Your code here...
})
喜欢这样。
$decide = $data['select_option'];
if($decide == 'farmer'){
$farmer = Farmer::create([
'user_id' => $user->id,
]);
}
elseif($decide == 'buyer'){
$buyer = Buyer::create([
'user_id' => $user->id,
]);
}
谢谢大家的帮助,我找到了解决以下问题的最简单方法:
if ($user->group == 2) {
$buyer = Buyer::create([
'user_id' => $user->id,
]);
}elseif ($user->group == 3) {
$farmer= Farmer::create([
'user_id' => $user->id,
]);
}
$user->save();
return $user;