Laravel. Umleiten soll post-Methode
Bin ich mit laravel 5 und das ist mein problem. Benutzer füllen Sie Formular X und wenn er die isin nicht angemeldet, bekommt er umgeleitet füllen Sie weitere Felder, ODER er bekommt die Möglichkeit sich in. Alles funktioniert gut, wenn Benutzer füllen Sie weitere Felder, aber wenn er login, laravel leitet Benutzer zu bilden X mit der Methode GET statt POST.
Dies ist, wie mein middleware-redirect sieht wie folgt aus:
return redirect()->guest('user/additional-fields');
Diese Umleitung wird auf erfolgreichem log-in:
return redirect()->intended();
So weiter umleiten soll, bekomme ich Fehler
MethodNotAllowedHttpException. URL korrekt ist, ist definiert als Methode POST. Was vermisse ich hier? Warum laravel leitet gedacht als GET-Methode? Wie könnte ich dieses problem lösen? Danke!
EDIT:
Route::post('/user/log-in-post', ['as' => 'user-log-in-post', 'uses' => 'UserController@postUserLogIn']);
Dies ist mein Weg, ich hoffe, dies ist eine, die Sie brauchen.
Idee dahinter ist, dass user schreiben, posten, wenn er will vermeiden, die Registrierung und lassen Sie ihn melden, wenn er sich entscheidet zu schreiben, den aktuellen Eintrag mit einem bestehenden Konto.
hm... OK, ich verstehe. Man könnte die alte () - Methode der Input-Fassade beim erneuten Zugriff auf Ihren controller, nachdem Sie umgeleitet werden. Eingang::Alter()
Aber wie kann ich die Umleitung wieder zu sehen, ein post-Methode?
bitte lassen Sie mich sehen Sie Ihre Benutzer-route, können Sie lösen dieses Problem, indem Sie Namen der route
InformationsquelleAutor Evaldas Butkus | 2015-05-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie eine benannte route, um dieses Problem zu lösen:
Können eine benannte route, so wie diese:
Für Bekommen
Post
So können wir nun dafür sorgen, dass Laravel verwendet, der richtige Weg, dies zu tun
return redirect()->guest(route('user.getAdditionalFields'));
Beachten Sie auch, dass es nicht mehr möglich umleiten
POST
weil Laravel erwartet Formular eingereicht werden. SO können Sie nicht tun:return redirect()->guest(route('user.postAdditionalFields'));
außer Sie so etwas wie cURL oder GuzzleHttp simulieren Sie eine post-Anforderung
Ok vielleicht ist es möglich den Teig. dies ist, was die redirect-Methode sieht aus wie in Laravel.
function redirect($to = null, $status = 302, $headers = array(), $secure = null) { if (is_null($to)) return app('redirect'); return app('redirect')->to($to, $status, $headers, $secure); }
lemme sehen, ob dies getan werden kann, über $headersButkus Bitte tun Sie auch mit zu senden, die in irgendeiner form Daten zusammen zu
redirect()->guest('user/additional-fields');
Ja, das Tue ich. return redirect()->Gast('user/Beurteilung/information/' .$code); also So wie ich udnerstand ich brauche, um zu sehen, wo sich post-Methode geschehen.
hmm. können Sie den Antrag flow klarer? Ich verstehe 1. Sie tun dies
return redirect()->guest('user/additional-fields');
2. Von Benutzer/zusätzliche-Felder-controller Methode, die Sie jetztreturn redirect()->intended();
wo bitte hatreturn redirect()->guest('user/review/information/' .$code);
passt in diese fließen?InformationsquelleAutor Digitlimit
Haben Sie zu betrügen, Laravel router durch ein "_method" die Eingänge.
Der beste Weg den ich gefunden ist, indem Täuschung und umschreiben der Authenticate middleware
Haben Sie zu schreiben, die handle-Methode zu ermöglichen, Ihre Umleitung mit Ihrem neuen input.
Wenn Sie wollen, um die Umleitung zu einer route mit einer anderen Methode als der BEKOMMEN, machen Sie einfach eine
Session::flash('url.entended.method', 'YOUR_METHOD')
.Mir sagen, ob es den trick tun
InformationsquelleAutor ChainList