2017-12-26 9 views
0

Ich habe eine Aussicht für eine location. Diese location, die unterschiedliche services hat. Sie sind beide verknüpft, wie viele im Modell (n-m-Beziehung) im Modell LocationService haben.Sync ein anderes Modell

In dieser Ansicht ist es möglich, tags für jede service der location auszuwählen. Ich habe ein Modell namens location_service_tag, das die ID der location_service und die ID der tags hat.

Jetzt möchte ich die tags der location_service Kombination unter Verwendung der sync Methode speichern. Wie ist es möglich, diese Informationen zu speichern? Hier

ist ein Beispiel (Die IDs sind frei gewählt):

Ich habe die Ansicht mit der location 1. Diese Lage hat 2 services mit der ID 11, 22 sie gespeichert sind, in die mit location_service ID 111,122. Der location_service 111 hat die Tag-ID 1111, 2222, der location_service 122 hat die Tags 2222, 4444.

Jetzt möchte ich diese Tags in location_service_tag mit Sync speichern. Wie ist das möglich?

Ich dachte, es könnte irgendwie so sein, aber es ist nicht möglich.

foreach($request->servicetags as $servicetag){ 
    if(count($servicetag)>0){ 
     //Final statement must be true, because we want to override e.g. if one is deleted or inserted 
     $location->locationservice()->tags()->sync($servicetag, true); 
    }else{ 
     //There are no services, submit an empty array 
     $location->locationservice()->tags()->sync([], true); 
    } 
    } 

Antwort

0

Schließlich habe ich es mit:

//Save relational Data of services 
    //If there are services, add the, else add empty array 
    if(isset($request->locationservices)){ 
    foreach($request->locationservices as $key => $locationservice){ 
     if(count($locationservice)>0){ 
     LocationService::find($key)->tags()->sync($locationservice, true); 
     }else{ 
     LocationService::find($key)->tags()->sync([], true); 
     } 
    } 
    } 

Der Schlüssel die locationservice_id als Schlüssel hat und der Wert der Schleife hat die ausgewählte tag_ids als Array für jede locationservice.

Verwandte Themen