คำตอบทั้งหมดนี้เป็นเพราะฉันได้ลองใช้ทั้งหมดแล้วมีสิ่งหนึ่งที่ยังไม่ได้รับการตอบรับหรือไม่ได้รับการดูแล: ปัญหาในการอัปเดตค่าที่เลือกไว้ก่อนหน้านี้ (ไม่เลือกช่องทำเครื่องหมาย [es]) ฉันมีบางอย่างที่คล้ายกับคำถามข้างต้นคาดว่าฉันต้องการตรวจสอบและยกเลิกการเลือกคุณสมบัติของผลิตภัณฑ์ในตารางคุณลักษณะผลิตภัณฑ์ของฉัน (ตาราง Pivot) ฉันเป็นมือใหม่และฉันไม่ได้ตระหนักถึงสิ่งที่กล่าวมาข้างต้น ทั้งสองอย่างดีเมื่อเพิ่มคุณสมบัติใหม่ แต่ไม่ใช่เมื่อฉันต้องการลบคุณสมบัติที่มีอยู่ (เช่นยกเลิกการเลือก)
ฉันจะขอบคุณการตรัสรู้ใด ๆ ในเรื่องนี้
$features = $request->get('features');
if (isset($features) && Count($features)>0){
foreach ($features as $feature_id){
$feature = Feature::whereId($feature_id)->first();
$product->updateFeatures($feature);
}
}
public function updateFeatures($feature) {
return $this->features()->sync($feature, false);
}
หรือ
public function updateFeatures($feature) {
if (! $this->features->contains($features))
return $this->features()->attach($feature);
}
public function addFeatures($feature) {
return $this->features()->attach($feature);
}
ขอโทษนะไม่แน่ใจว่าฉันควรจะลบคำถามหรือไม่เพราะการหาคำตอบด้วยตัวเองมันฟังดูโง่ไปหน่อยคำตอบข้างบนนั้นง่ายพอ ๆ กับการทำงาน @Barryvdh sync () ดังนี้; ได้อ่านมากขึ้นเกี่ยวกับ:
$features = $request->get('features');
if (isset($features) && Count($features)>0){
$product->features()->sync($features);
}
attach()
ผสมอาจเป็น int หรืออินสแตนซ์ของโมเดลก็ได้) - ดูgithub.com/laravel/framework/blob/master/src/Illuminate/…