复制 Laravel 集合 - Laravel 5.3
Replicate Laravel collection - Laravel 5.3
我正在复制一个行程 table。在行程表上,有一个 select 物种的下拉菜单。一个用户可以select很多种来。我在复制这个物种 table 时遇到了麻烦,因为它有自己的 table,而且它是一个集合。所以使用 "replicate" 是行不通的。
这就是我现在复制旅行 table 的方式:
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);
// This is how im getting the species from the species table
$replicateSpecies = DB::table('species_trip')->where('trip_id', $id)->get();
$newTask = $replicateTrip->replicate();
$newTask->save();
return redirect()->back();
}
如果我在克隆当前行程时添加 $replicateSpecies 变量,我得到:
我需要将我最初旅行中的物种数组复制到物种 table 中,我不能只使用 "replicate",因为它是一个集合。
所以我的问题是如何复制这个集合?或者是否有其他方法可以做到这一点?
你可以试试:
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);
// This is how im getting the species from the species table
$replicateSpecies = DB::table('species_trip')->where('trip_id', $id)->get();
$newTask = $replicateTrip->replicate();
$newTask->save();
$replicateSpecies->each(function ($item, $key) use($newTask) {
$copy = $item->replicate();
$copy->trip_id = $newTask->id;
$copy->save();
})
return redirect()->back();
}
我正在复制一个行程 table。在行程表上,有一个 select 物种的下拉菜单。一个用户可以select很多种来。我在复制这个物种 table 时遇到了麻烦,因为它有自己的 table,而且它是一个集合。所以使用 "replicate" 是行不通的。
这就是我现在复制旅行 table 的方式:
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);
// This is how im getting the species from the species table
$replicateSpecies = DB::table('species_trip')->where('trip_id', $id)->get();
$newTask = $replicateTrip->replicate();
$newTask->save();
return redirect()->back();
}
如果我在克隆当前行程时添加 $replicateSpecies 变量,我得到:
我需要将我最初旅行中的物种数组复制到物种 table 中,我不能只使用 "replicate",因为它是一个集合。
所以我的问题是如何复制这个集合?或者是否有其他方法可以做到这一点?
你可以试试:
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);
// This is how im getting the species from the species table
$replicateSpecies = DB::table('species_trip')->where('trip_id', $id)->get();
$newTask = $replicateTrip->replicate();
$newTask->save();
$replicateSpecies->each(function ($item, $key) use($newTask) {
$copy = $item->replicate();
$copy->trip_id = $newTask->id;
$copy->save();
})
return redirect()->back();
}