Sebagus semua jawaban ini adalah karena saya telah mencoba semuanya, satu hal yang masih belum terjawab atau tidak diurus: masalah memperbarui nilai yang dicentang sebelumnya (hapus centang pada kotak yang dicentang [es]). Saya memiliki sesuatu yang mirip dengan pertanyaan di atas, saya harap saya ingin memeriksa dan menghapus centang fitur produk di tabel fitur produk saya (tabel pivot). Saya seorang pemula dan saya telah menyadari tidak satu pun di atas yang melakukan itu. Keduanya bagus saat menambahkan fitur baru tetapi tidak saat saya ingin menghapus fitur yang ada (yaitu, hapus centang)
Saya akan menghargai pencerahan apapun dalam hal ini.
$features = $request->get('features');
if (isset($features) && Count($features)>0){
foreach ($features as $feature_id){
$feature = Feature::whereId($feature_id)->first();
$product->updateFeatures($feature);
}
}
//product.php (extract)
public function updateFeatures($feature) {
return $this->features()->sync($feature, false);
}
atau
public function updateFeatures($feature) {
if (! $this->features->contains($features))
return $this->features()->attach($feature);
}
//where my attach() is:
public function addFeatures($feature) {
return $this->features()->attach($feature);
}
Maaf teman-teman, saya tidak yakin saya harus menghapus pertanyaannya karena setelah mengetahui jawabannya sendiri, kedengarannya agak bodoh, nah jawaban di atas sesederhana bekerja @Barryvdh sync () sebagai berikut; setelah membaca lebih banyak tentang:
$features = $request->get('features');
if (isset($features) && Count($features)>0){
$product->features()->sync($features);
}
attach()
ini dicampur, dapat berupa int atau turunan model;) - lihat github.com/laravel/framework/blob/master/src/Illuminate/…