【发布时间】:2017-03-17 02:47:00
【问题描述】:
这是一个棘手的问题。我会尽力解释它。我有一次旅行,我希望用户在该旅行上单击复制按钮,这将再次复制该旅行,因此用户不必再次填写巨大的表格。
行程表保存为 4 个模型(表格)。
这就是我现在进行复制的方式:
public function replicateTrip (Request $request, $slug, $id) {
$listing = $request->user()->listings()->where('slug', $slug)->first();
$trip = $listing->trips()->where('id', $id)->first();
$replicateTrip = Trip::find($trip->id);
$replicatebringToTrip = BringToTrip::where('trip_id', $id)->first();
$replicateIncludedInPriceForTrip = IncludedPriceTrip::where('trip_id', $id)->first();
$replicateNotIncludedInPriceForTrip = NotIncludedPriceTrip::where('trip_id', $id)->first();
$newTask = $replicateTrip->replicate();
$newTask2 = $replicatebringToTrip->replicate();
$newTask3 = $replicateIncludedInPriceForTrip->replicate();
$newTask4 = $replicateNotIncludedInPriceForTrip->replicate();
$newTask->save();
$newTask2->save();
$newTask3->save();
$newTask4->save();
return redirect()->back();
}
这就是主行程表上复制行程的样子:
然后我得到了 3 个其他不同的模型(表),它保存了来自该旅行 ID 的数据。
例如,这是我将数据复制到的另一个表:
如您所见,数据已成功复制,但“trip_id”列(在本例中为 1259)仍与我复制的原始行程相同。我需要获取新复制的trip_id,并将其插入到我拥有的其他3 个模型中。所以在这种情况下,第二行将是 1262 而不是 1259。
【问题讨论】:
标签: laravel model replication laravel-5.3 relationships