2017-07-28 3 views
0

Ich versuche, einen Benutzer einzuloggen und sie auf eine Seite zu bringen, die Inhalt basierend auf einem Slug anzeigt.Fehlendes Argument 2 in Laravel Controller

ich diesen Fehler:

ErrorException in ApplicantLoginController.php line 21: 
Missing argument 2 for App\Http\Controllers\Auth\ApplicantLoginController::Login() 

Das ist mein Controller ist:

public function Login(Request $request, $slug){ 
     //Validate the form 
     $this->validate($request, [ 
      'email' => 'required', 
      'password' => 'required', 
      'agree' => 'required' 
     ]); 

     //Attempt to log the user in 
     if (Auth::guard('applicant')->attempt(['email' => $request->email,'password' => $request->password])) { 

     $house = House::where('slug', '=', $slug)->first(); 
     return view('client.index')->withHouse($house); 
     } 

     return redirect()->back()->withInput($request->only('email')); 
    } 

Dies ist der Weg auf die Seite ich sie nach der Anmeldung nehme:

Route::get('client/index/{slug}', ['as' => 'client.index', 'uses' => '[email protected]']); 

Dies sind meine Login-Routen:

Route::get('client/login', 'Auth\[email protected]')->name('client.login'); 
Route::post('/client/login', 'Auth\[email protected]')->name('client.login.submit'); 

Irgendwelche Ideen, wie ich dieses Problem lösen kann?

Dies ist die Taste, die den Benutzer auf der Seite mit dem auf einem Slug

<a href="{{ url('client/index/'.$house->slug) }}" class="btn btn-success btn btn-block">Book now</a> 

Wenn der Benutzer nicht auf der Seite angemeldet ist Umleitungen auf diese Anmeldeseite basierten Inhalte nehmen:

<form class="form-horizontal" role="form" method="POST" action="{{ route('client.login.submit') }}"> 
        <input name="_token" type="hidden" value="{{ csrf_token()}}"/> 
         <div class="form-group"> 
          <label for="email" class="col-md-3 control-label"></label> 
          <div class="col-md-6"> 
           <input type="email" class="form-control" placeholder="Your Email" name="email" required=""> 
          </div> 
         </div> 

         <div class="form-group"> 
          <label for="password" class="col-md-3 control-label"></label> 
          <div class="col-md-6"> 
           <input type="password" class="form-control" placeholder="Password" name="password" required=""> 
          </div> 
         </div> 

         <div class="form-group"> 
          <div class="col-md-6 col-md-offset-3"> 
           <div class="checkbox"> 
            <label> 
             <input type="checkbox" name="remember"> Remember Me 
            </label> 
           </div> 
          </div> 
         </div> 

         <div class="form-group"> 
          <div class="col-md-6 col-md-offset-3"> 
           <div class="checkbox"> 
            <label> 
             <input type="checkbox" name="agree" required=""> I have read and accepted the <a href="" data-toggle="modal" data-target="#myModal" class="checkbox-terms-client">terms and condition</a> 
            </label> 
           </div> 
          </div> 
         </div> 

         <div class="form-group"> 
          <div class="col-md-8 col-md-offset-3"> 
           <input type="submit" value="Login" class="btn btn-primary"> 

           </input> 

           <a class="btn btn-link" href="#"> 
            Forgot Your Password? 
           </a> 
          </div> 
         </div> 

        </form> 

Antwort

0

Sie sollten $ Slug in der Post-Route deklariert haben:

Route::post('/client/login/{slug}', 'Auth\[email protected]')->name('client.login.submit'); 

Und ändern Sie Ihr Formular, um die Par hinzuzufügen messer:

<form class="form-horizontal" role="form" method="POST" action="{{ route('client.login.submit', ['slug' => $slug]) }}"> 
+0

ich getan habe, dass, bekomme ich diesen Fehler: Error in UrlGenerationException.php Zeile 17: Fehlende erforderlichen Parameter für [Route: client.login.submit] [URI: Client/login/{Slug} ]. – Martin

+0

Können Sie das Formular, in dem Sie anrufen/client/login, posten? – Laerte

+0

Ich habe die Schaltfläche hinzugefügt, die den Benutzer auf die Seite mit den Informationen auf Basis eines Slugs bringt. Der Benutzer muss sich anmelden, um auf diese Seite zugreifen zu können. Wenn ich versuche, mich anzumelden, erhalte ich den Fehler, den ich gepostet habe. – Martin

Verwandte Themen