2017-08-29 1 views
0

Wie mache ich benutzerdefinierte Methode zum Abrufen von Formulardaten? Ich möchte diese Methode gleich mit Laravel Update-Methode mit Parameter Anfrage und ID. Ich versuche das, bekomme aber Fehler.Laravel erstellen benutzerdefinierte Methode zum Abrufen von Formulardaten

In Controller

public function updatePassword(Request $request, int $id) { 
    dd($request->all()); 
} 

In Route

Route::post('staffs/{id}/upassword', 'Admin\[email protected]')->name('admin.staffs.upassword'); 

In Blade-Datei

<form method="post" accept-charset="utf-8" action="{{ action('Admin\[email protected]', ['id' => $staff_id]) }}"> 
    <div class="row"> 
     <div class="col-md-3"> 
      <div class="form-group"> 
       <label class="control-label" for="password">New Password</label> 
       <input class="form-control" name="password" type="password"> 
      </div> 
     </div> 
    </div> 
    <div class="row"> 
     <div class="col-md-3"> 
      <div class="form-group"> 
       <label class="control-label" for="password_confirmation">Confirm New Password</label> 
       <input class="form-control" name="password_confirmation" type="password"> 
      </div> 
     </div> 
    </div> 

    <input class="btn btn-primary" type="submit"> 
</form> 

Ich bin mit Laravel 5.4.

+0

Was ist der Fehler, den Sie bekommen? – Sletheren

+0

@NorrisOduro war das nicht meine Antwort schon? lol – Sletheren

+0

@Sletheren lol sorry ... ich habe nicht gesehen –

Antwort

0

hier sind einige Dinge zu beheben:

  • Zuerst in den Tag, das Sie die Aktion setzen: action="route('admin.staffs.upassword', $staff_id)" da es ist einfacher zu schreiben und da Sie bereits die Route einen Namen gab, also warum nicht Verwendung it;)
  • Zweite add {{csrf_field() }} direkt vor Ihrem Formular schließenden Tag </form>
+0

Ich füge einfach '{{csrf_field()}}' und es funktioniert. Vielen Dank –

+0

Ich darf nicht wählen. Immer noch Neuling hier. Haha –

0

welche Fehler Bekommst du? Der Fehler liegt wahrscheinlich daran, dass Sie nach der Formulardeklaration {{csrf_field()}} nicht verwenden, damit laravel die Anfrage validieren kann. Wenn Sie die Daten aus dem Formular abrufen möchten, können Sie Folgendes verwenden:

$request->get('inputname'); 
+0

Danke. Es funktioniert, nachdem ich '{{csrf_field()}}' gesetzt habe. –

Verwandte Themen