2016-05-09 16 views
0

Ich versuche Laravel 5.2 RESTful Ressource-Controller zu verwenden. Wenn jedoch von meinem Index bewegen zu schaffen, würde Ich mag einen Parameter zu übergeben, wie die Seite erstellen sollte teilweise ausgefüllt werden.Laravel RESTful Controller hinzufügen Parameter zu erstellen

bearbeiten Das Formular, das ‚erstellt‘ werden werden Felder ausgefüllt hat aus der Datenbank bereits. Das Create sollte also die ID von dem Benutzer nehmen, auf den im Index geklickt wurde.

Meine temporäre Lösung:

Route::get('consultation/{id}', '[email protected]'); 
Route::resource('consultation', 'ConsultationController', ['except' => ['create']]); 

Gibt es eine Möglichkeit, dies zu einem Optionsfeld in der gleichen Zeile wie Ressource hinzufügen?

Dank

Edit: Ich in diesem Fall annehme, würde mein Speicher auch die gleichen {id} Parameter benötigen.

+0

Entschuldigung, aber ich verstehe nicht, was Sie meinen, Sie möchten etwas aus der Ansicht übergeben, um in der create view angezeigt zu werden? Von wo wirst du es bekommen? Benutzereingabe im Index oder was? Können Sie bitte besser erklären –

+0

Ich habe meinen Beitrag bearbeitet. Die Informationen werden basierend auf der übergebenen ID aus der Datenbank gezogen. Ich habe einen Index mit anklickbaren Zeilen. Wenn diese Zeile angeklickt wird, sollte sie zur Erstellungsressource umleiten, aber eine ID übergeben, standardmäßig hat Laravels RESTful Controller create ohne Parameter. – arthur

+0

Sie können ein Formular im Index mit einem methd = get mit einem versteckten Eingang anstelle von verwenden und dann auf die Daten über $ request-> input ('') in der Funktion @create zugreifen und es mit ihm zurückgeben –

Antwort

4

war ich auch gespannt, aber ich denke, dass die Laravel Dokumentation darüber ist ziemlich klar:

Wenn es notwendig wird, zusätzliche Routen zu einer Ressource Controller über die Standard-Ressourcen-Routen sollten Sie, hinzufügen diese Routen vor Ihrer Aufruf zur Route :: Ressource

definieren und sie fügen Sie die folgende, für mich bedeutet, dass, wenn Sie eine definierte Route außer Kraft setzen möchten, müssen Sie nur die Definition setzen auf der Oberseite des Route::resource() de Schluss.

sonst die Routen durch die Ressource Methode definiert ist, können unbeabsichtigt Vorrang vor Ihren zusätzlichen Routen

EDIT

Nach einem besseren Verständnis der Frage nehmen, würde ich die erholsamen Controller lassen als ist, und erstellen Sie eine neue Route wie /user/{user-id}/consultations/create, die viel "erholsamer" ist.

+0

Der Grund I Ich möchte die show() -Methode nicht verwenden, weil ich möchte, dass das create basierend auf {id} teilweise ausgefüllt wird und der Rest vom Benutzer ausgefüllt wird. Wo ich möchte zeigen(), die vollständig ausgefüllte Form zu sein. Vielen Dank für die Antwort, ich werde wahrscheinlich nur über der resource() Definition bleiben. – arthur

+0

Ich verstehe Ihren Punkt, aber wenn Sie 'Beratung/{ID}' als Route verwenden, überschreibt dies Ihre 'show()' Methode, irre ich mich? Sie könnten eine Route wie 'beratung/create/{id}' oder etwas – Hammerbot

+0

erstellen Sie haben Recht. Ich werde meinen Weg dorthin ändern.Danke – arthur

Verwandte Themen