2017-05-10 3 views
0

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?

Antwort