2016-09-27 4 views
3

Ich muss durch Klicken auf eine Schaltfläche, um einen zusätzlichen Parameter ($ uid) von meinem index.blade.php meiner edit.blade.php passieren.Laravel Passing Zusätzliche Parameter an die Steuerung

Mein index.blade.php:

<a href="{!!action('[email protected]', ['id' => Auth::user()->id, 'uid' => 1])!!}" type="button" class="btn btn-block btn-lg btn-info vorlageBtn card-link">Edit </a> 

Mein FlyersController:

public function edit($id, $uid) 
{ 

    return view('backend.flyers.edit')->withUid($uid); 
} 

Mit dem Code oben Ich erhalte eine Fehlermeldung: „Fehlende Argument 2 für App \ Http \ Controllers \ FlyersController: : edit() "

Was mache ich hier falsch?

+0

Warum verbindest du stattdessen eine Route? –

Antwort

-1

Mit diesem Code

return view('backend.flyers.edit', ['var1' => $var1, 'var2' => $var2]); 

, dass zwei oder mehr Variablen zu Ihrer Ansicht passieren

+3

OP möchte Parameter an einen Controller übergeben, nicht an eine Ansicht. –

+0

Gleiches Ergebnis. Der Controller weiß immer noch nicht über den Param – Mamulasa

1

Sie sollten ein Array in action() Helfer übergeben:

action('[email protected]', ['id' => Auth::user()->id, 'uid' => 1]) 
+0

Ich habe es auch versucht. Mit dem gleichen Ergebnis. Übrigens ist dies die URL, zu der ich weitergeleitet werde, nachdem ich den Button "http: // localhost: 8000/backend/flyers/10/edit?% 24uid = 1" gedrückt habe. Die UID wird übergeben, aber der FlyersController macht immer noch Probleme – Mamulasa

2

Der Fehler nicht wirft aus die Aktionsmethode. Es kommt von der Route für diese URL.

Überprüfen Sie die URL zum Übergeben des Arguments an den Controller.

Wenn dies die Ihre Wunsch-URL ist localhost:8000/backend/flyers/10/edit?%24uid=1 dann das zweite Argument ist in $request Variable nicht in Controller-Funktion Argument.

+0

das ist meine Route Route :: Ressource ('Backend/Flyer', 'FlyersController'); – Mamulasa

+1

Sie verwenden Ressourcen-Routing das zweite Argument ist in Query-String, so dass es aus der Request-Variable abrufen wie $ request-> uid stellen Sie sicher Request-Variable in Controller-Aktion hinzufügen –

1

Ok, die einzige Art, wie ich dieses Problem lösen kann, ist durch die folgende in My FlyersController mit:

public function edit(Request $request, $id) 
{ 

    return view('backend.flyers.edit')->withRequest($request); 
} 

und den Zugang dann die uid mit {{request-> uid}} in meiner Ansicht.

Wenn jemand eine bessere Lösung dafür hat, lass es mich wissen.

+0

Nicht sicher, warum Sie eine bessere Lösung benötigen würden. Dies ist ein sehr guter Weg, dies zu tun. –