Ich möchte eine Eigenschaft basierend auf einem Array speichern, das IDs enthält. Wenn das Array der ID enthält, dann ist die Eigenschaft 1. Es sonst 0 ist:Eloquente Objekte dynamisch nach dem Schleifen speichern
public function save_item(Request $request)
{
if ($request->authorize() == false) {
return back()
->withErrors($request)
->withInput();
}
$my_items= Item::where("owner_id", Auth::user()->owner_id)->get();
foreach ($my_items as $my_item) {
if (isset($request->property)) {
foreach ($request->property as $property) {
if ($property== $my_item->id) {
$my_item->property= 1;
} else {
$my_item->property= 0;
}
}
} else {
$my_item->property= 0;
}
if (isset($request->otherproperty)) {
foreach ($request->otherpropertyas $otherproperty) {
if ($otherproperty == $my_item->id) {
$my_item->otherproperty= 1;
} else {
$my_item->otherproperty= 0;
}
}
} else {
$my_item->otherproperty= 0;
}
if (isset($request->delete)) {
foreach ($request->delete as $delete) {
if ($delete== $my_item->id) {
$my_item->destroy($my_item->id);
}
}
}
my_item->save();
}
return back();
}
ich diese Funktion einer Schleife durch alle IDs erwarten und die Eigenschaft als 1, wenn der ID-Treffer oder sonst 0 speichern.
Stattdessen. Diese Funktion speichert nur die letzte ID.
Die Löschschleife funktioniert jedoch.
Irgendwelche Hilfe?