2016-10-29 3 views
0

Ich versuche, eine RESTful CRUD controller mit einem kleinen, aber signifikanten Unterschied zu schaffen, die in Konflikt mit REST Idee sein könnte, aber trotzdem:Massen CRUD REST Edit/Update Controller

Ich mag so zu Massen bearbeiten Gegenstände versuche /photos/{photo}/edit wo item id parameter sind wie /photos/0&2&7/edit

Was ist der richtige Weg, um das in Laravel 5.3 zu etablieren? Gibt es eine Möglichkeit, einige Methoden Injektionen zu verwenden oder zumindest eine Sammlung von Parametern in der Controller-Methode zu erhalten?

public function edit($id) { 
    //....... 
} 

Schätzen Sie Ihre freundliche Hilfe, BR

+0

Nur um zu verdeutlichen, Sie sagen, Sie möchten in der Lage sein, mehrere IDs zu übergeben in dem Fotoparameter z.B. in der Instanz haben Sie die IDs 0, 2 und 7 angegeben? Oder ist es ein Foto und die ID dieses Fotos ist "0 & 2 & 7"? –

+0

@ alex-greaves ja ids sind 0,2 und 7 von drei verschiedenen Artikeln. –

+0

Sie haben also eine Reihe von Bildern, vermutlich in einer Bildtabelle mit einem Image-Modell? Und Sie möchten eine Sammlung aller Bilder mit den im Parameter photo angegebenen IDs zurückgeben? Ich nehme an, dass Sie angesichts der Sammlung in der Lage sein würden, die Bilder nach Bedarf zu manipulieren? –

Antwort

1

Eloquent Verwenden Sie tun können, wobei, so brauchen Sie nur die Foto-Parameter zu explodieren, so dass alle IDs in einem Array sind:

public function edit($ids) { 
    $photo_ids = explode('&', $ids); 

    $images = Image::whereIn('id', $photo_ids)->get(); 
} 

Sie können statisch auf das Image-Modell zugreifen, wie ich es in diesem Beispiel getan habe, Sie können einfach Methode injizieren oder Abhängigkeit injizieren das Image-Modell, lassen Sie mich wissen, wenn Sie Hilfe bei der Abhängigkeit/Methodeninjektion haben möchten.

0

Hey ich denke, Sie versuchen, Modell verbindlich, so dass Sie wie folgt verwenden

public function edit(Photo $photo) { 
    //....... 
} 

Ihre Route dieses

Route::model('photos','App\Photo'); 
Route::resource('photos','PhotoController'); 

oder Sie können auf diese Weise mögen, sollten versuchen Ihre Route und Funktion wie Dies

Route::resource('photos','PhotoController'); 

public function edit($id) { 
    $photo = Photo::findorFail($id); 
} 
+0

Aber ich suche nach Bearbeitung mehrerer Artikel –

+0

dann erklären Sie Ihre Frage richtig – Hamelraj