【发布时间】:2020-08-30 22:02:57
【问题描述】:
我有 4 张桌子
- 客户:客户数据。此表有很多(退款)
- 退款:带有各种请求的数据。此表 belongsTo(Customers) AND belongsToMany(Services)
- 服务:带有服务列表。此表属于ToMany(退款)
- Refunds-Services:退款和服务的桥接表
我有一个必须在正确的表中插入数据的表单。
public function storeRefunds(RefundsPost $request){
DB::beginTransaction();
$customers = Customers::create($request->all());
$refunds = $customers->refunds()->create([
'date_ref' => request('date_ref'),
'status_ref' => request('stato'),
]);
$tipo = $request->input('tipo', []);
$importo = $request->input('importo', []);
$refunds = Refunds::create($request->all());
for ($i=0; $i < count($tipo); $i++) {
if ($tipo[$i] != '') {
$refunds->services()->attach($tipo[$i], [
'services_id' => $tipo[$i],
'services_amount' => $importo[$i]
]);
}
}
return redirect("/");
}
使用此代码,我可以将所有数据插入正确的表中,但在 Refunds 表中找不到 ID 连接。 Refunds 表中创建了两个不同的 ID。在 Refunds 表中创建的第二个 ID 未连接到任何客户 (0),但连接到选择的服务列表。 我能怎么做? 谢谢
【问题讨论】:
-
只需删除
$refunds = Refunds::create($request->all());。再次运行代码并检查映射。
标签: laravel eloquent relationship