将 table 复制到其他 3 个 table,同时更新 trip_id 列 - Laravel 5.3
Replicate table, to 3 other tables, while updating the trip_id column - Laravel 5.3
这是一个棘手的问题。我会尽力解释它。我有一次旅行,我希望用户单击该旅行的复制按钮,这将再次复制该旅行,因此用户不必再次填写巨大的表格。
旅行表格保存到 4 个模型(tables)。
这就是我现在进行复制的方式:
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();
}
这就是复制的行程在主要行程中的样子 table:
然后我得到了其他 3 个不同的模型 (tables),它将数据保存到该行程 ID。
例如,这里是我的另一个 table,数据被复制到:
如您所见,数据复制成功,但是,"trip_id"列,在本例中为1259,仍然与我复制的原始行程相同。我需要获得新的复制 trip_id,并将其插入我拥有的其他 3 个模型中。所以在这种情况下,第二行将是 1262 NOT 1259.
您可以试试:
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->trip_id = $newTask->id;
$newTask3->trip_id = $newTask->id;
$newTask4->trip_id = $newTask->id;
$newTask2->save();
$newTask3->save();
$newTask4->save();
return redirect()->back();
}
这是一个棘手的问题。我会尽力解释它。我有一次旅行,我希望用户单击该旅行的复制按钮,这将再次复制该旅行,因此用户不必再次填写巨大的表格。
旅行表格保存到 4 个模型(tables)。
这就是我现在进行复制的方式:
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();
}
这就是复制的行程在主要行程中的样子 table:
然后我得到了其他 3 个不同的模型 (tables),它将数据保存到该行程 ID。
例如,这里是我的另一个 table,数据被复制到:
如您所见,数据复制成功,但是,"trip_id"列,在本例中为1259,仍然与我复制的原始行程相同。我需要获得新的复制 trip_id,并将其插入我拥有的其他 3 个模型中。所以在这种情况下,第二行将是 1262 NOT 1259.
您可以试试:
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->trip_id = $newTask->id;
$newTask3->trip_id = $newTask->id;
$newTask4->trip_id = $newTask->id;
$newTask2->save();
$newTask3->save();
$newTask4->save();
return redirect()->back();
}