2017-11-12 1 views
0

Ich habe services und items Tabelle. Ich habe den Pivot-Tisch als service_item. Ich kann Daten in meiner Pivot-Tabelle speichern, aber ich kann nicht die richtige Syntax zum Aktualisieren der Pivot-Tabelle erhalten. Mein Code speichert neue Daten, wenn ich versuche, vorhandene Daten zu aktualisieren.Aktualisieren Pivot Tabelle in Laravel

PS: Mein Code ist zwar in der Lage, den Namen des Kunden zu bearbeiten, aber nicht die Artikel, die der Kunde zuvor gekauft hat.

Ich möchte die item_id und Menge in der Lage sein

service_item zu aktualisieren - schwenken.

service_id 

item_id 

qty 

-Controller

public function store(Request $request) 
{ 
    $service = new Service(array(
     'id' => $service_no, 

    )); 

    $service->save(); 
    $selectedItems = [];   
    foreach($request->get('item_id') as $key => $id) { 
     $selectedItems[$id] = ['qty' => $request->get('quantity')[$key]]; 
    } 
    $service->items()->attach($selectedItems); 
} 



public function update($id, Request $request) 
    { 
     $service = Service::findOrFail($id); 
     $service->clients->name = $request->get('name'); 
     $service->clients->save(); 

     $selectedItems = [];   
     foreach($request->get('item_id') as $key => $id) { 
      $selectedItems[$id] = ['qty' => $request->get('quantity')[$key]]; 
     } 
      $service->items()->attach($selectedItems); 


    } 
+0

Wahrscheinlich aber ich weiß nicht richtig verstanden zu lösen, wer $ service_no von $ service = neuer Dienst (array ( 'id' => $ service_no, – Radu

+0

@Radu, ich habe keine Probleme damit (Dienst speichern in meine Datenbank). Nun ist das '$ service_no' die ID des Dienstes, den ich erstelle, den ich mit einem Algorithmus in die Variable' $ service_no' erzeuge. Ich habe nicht den Algorithmus, aber das funktioniert – LearnLaravel

+0

Ich denke, das Problem ist in den Fremdschlüsseln. Vor allem in service_id in Pivot-Tabelle fremd. Prüfen Sie, verwenden Sie den richtigen Service für die Aktualisierung? –

Antwort

0

Okay, nach der Erforschung, war ich in der Lage, dies mit updateExistingPivot

public function update($id, Request $request) 
    { 
     $service = Service::findOrFail($id); 
     $service->clients->name = $request->get('name'); 
     $service->clients->save(); 

     $selectedItems = [];   
     foreach($request->get('item_id') as $key => $id) { 
      $selectedItems[$id] = ['qty' => $request->get('quantity')[$key]]; 
     } 
     $service->items()->updateExistingPivot($item_id, ['quantity' => selectedItems], false); 


    } 
Verwandte Themen