嘗試id's從表中獲取匹配并將它們再次插入到不同關系下的同一個表中。
$contentPack = ContentPack::find($id);
$cloned_pack_goals = DB::table('content_pack_goal')->where('content_pack_id' , $contentPack->id)->get();
$cloned_pack_goal_ids = $cloned_pack_goals->goal_id;
產生例外
Exception
Property [goal_id] does not exist on this collection instance.
dd($cloned_pack_goals);輸出:
Illuminate\Support\Collection {#2466 ▼
#items: array:2 [▼
0 => {#3129 ▼
"goal_id": 4
"content_pack_id": 2
}
1 => {#2467 ▼
"goal_id": 9
"content_pack_id": 2
}
]
}
如何goal_ids從輸出中將它們再次插入同一個表但關系不同?
$newPack = $contentPack->replicate();
DB::table('content_pack_goal')->insert(['content_pack_id' => $newPack->id,'goal_id' => $cloned_pack_goal_ids]);
在獲取 ID 和插入 ID 時做錯了什么。嘗試使用->first();它有效,但只有一個id被插入
uj5u.com熱心網友回復:
$cloned_pa??ck_goals 是一個集合,因此您需要從所有集合記錄中分別排除goal_ids。這個片段可以幫助你:
$cloned_pack_goal_ids = DB::table('content_pack_goal')->where('content_pack_id' , $contentPack->id)->pluck('goal_id')->toArray();
foreach($cloned_pack_goal_ids as $key => $goal_id) {
DB::table('content_pack_goal')->insert(['content_pack_id' => $newPack->id,'goal_id' => $goal_id]);
}
uj5u.com熱心網友回復:
要獲取僅包含 Id 的陣列,請使用pluck()和toArray()
$cloned_pack_goal_ids = DB::table('content_pack_goal')
->where('content_pack_id' , $contentPack->id)
->pluck('goal_id') // returns a collection of only Ids.
->toArray(); // returns an array from the collection.
uj5u.com熱心網友回復:
以這種格式撰寫您的查詢,這將為您提供所需的輸出:
$cloned_pack_goals = DB::table('content_pack_goal')->where('content_pack_id' , $contentPack->id)->get()->toArray();
$cloned_pack_goal_ids = $cloned_pack_goals[0]->goal_id;
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/480737.html
