2016-09-12 2 views
1

Ich habe ein Modal in meinem Layout, um Benutzer zu erstellen (als die Option Anmeldung), ich kann den Benutzer korrekt erstellen, aber ich muss es automatisch anmelden und ihn auch auf eine andere Seite umleiten, wie kann ich es tun?Wie erstelle ich ein Modal mit Laravel Framework?

Hier ist mein Code:

Mein modal im Header Layout

<div id="LoginModal" class="modal fade" role="dialog"> 
    <div class="modal-dialog"> 
     <div class="modal-content" style="background-image: url(/assets/img/Login/Email_Gate.png);width: 420px;height: 550px;"> 
      <div class="modal-body" style="padding:0;"> 
       <div class="tabbable"> 
        <ul class="nav nav-tabs" id="LoginNavUl" style="margin:50px;"> 
         <li style="width: 150px;margin: 0; height: 47px;"><a href="#tab1" data-toggle="tab" aria-expanded="false" style="text-align: center;">Sign Up</a></li> 
         <li class="active" style="width: 150px;margin: 0;"><a href="#tab2" data-toggle="tab" aria-expanded="true" style="text-align: center;">Login</a></li> 
        </ul> 

        <div class="tab-content active"> 
         <div class="tab-pane" id="tab1"> 
          <div class="green-banner" style="background-color: #04c08d; height: 60px;"> 
           <p>Nice to meet you.</p> 
          </div> 
          <div class="content-login" style="padding-left:70px; padding-right:70px; padding-top:50px;"> 
           <form id="formRegister" class="form-horizontal" role="form" method="POST" action="{{ route('signup') }}"> 
            <input type="hidden" name="_token" value="{{ Session::token() }}"> 
            <input type="email" class="form-control" name="email" style="width: 100%;" placeholder="Email"><br/> 
            <input type="password" class="form-control" name="password" style="width: 100%;" placeholder="Password"><br/> 
            <input type="date" style="width: 100%; margin-bottom: 70px;" name ="eventdate" placeholder="Event Date"/><br/> 
            <div class="btn-submit-login"> 
             <div> 
              <button id="edit-submit" name="op" type="submit" style="border: none;background-color: transparent;">SIGN UP</button> 
             </div> 
            </div> 
           </form> 
          </div> 
         </div> 
        </div> 
       </div> 
      </div> 
     </div> 
    </div> 
</div> 

Mein Controller:

public function createUser(Request $request)       
{                   
$email = $request['email'];           
$password = bcrypt($request['password']);        

$user = new UserModel();            
$user->email = $email;             
$user->password = $password;           
$user->role_id = 3;             
$user->save();               

/* 
I need to log the user here 
*/ 

if user is logged in {  
    Redirect::to('/collection');          
} else {                
    Redirect::to('/');             
}                  

}

+0

https://laravel.com/docs/5.3/authentication –

Antwort

0

Sie den Benutzer ihn anmelden und Umleitung durch Hinzufügen diese beiden Codezeilen direkt nachdem du deinen User in deiner 0 gespeichert hastFunktion:

Auth::login($user); 

Redirect::to('/collection'); 
+0

Stellen Sie hierzu sicher, dass das Benutzermodell 'Authenticatable' verwendet. OP scheint sein eigenes Benutzermodell zu verwenden – Pistachio

0

Ich denke, so etwas wie dies sollte in Ihrem Controller arbeiten:

public function createUser(Request $request)       
{                   
$email = $request['email'];           
$password = bcrypt($request['password']);        

$user = new UserModel();            
$user->email = $email;             
$user->password = $password;           
$user->role_id = 3;             
$user->save(); 

if (Auth::attempt(['email' => $email, 'password' => $password])) {  
    Redirect::to('/collection');          
} else {                
    Redirect::to('/');             
} 

https://laravel.com/docs/5.3/authentication#authentication-quickstart

0

Warum nicht Laravel die in Authentication gebaut verwenden?

In Laravel 5.3 sollten Sie eine Klasse sehen app/Http/Controllers/Auth/RegisterController.php

Dieser Controller verwendet ein Merkmal RegistersUser standardmäßig genannt genannt. Diese Klasse macht genau das, was Sie denken würden. Es registriert einen Benutzer. Sie können jede der Merkmalsmethoden in Ihrer Klasse RegisterController.php überschreiben, um die von Ihnen gewünschte Funktionalität hinzuzufügen.

Sie haben auch eine LoginController.php, die in einem Benutzer anmeldet, und es bietet auch eine Methode namens authenticated(), die Sie in Ihrem LoginController.php außer Kraft setzen können alle möglichen Sachen nach ein Benutzer authentifiziert wurde zu tun.

Als eine Nebenbemerkung, ich bin mir nicht sicher, ob Sie den "Punkt" von Laravel oder was es tatsächlich zu bieten haben. Müssen Sie wirklich Ihre eigene UserModel erstellen? Es ist mit einem Benutzermodell ausgestattet, das nahtlos mit dem Rest des Frameworks zusammenarbeiten kann - insbesondere mit den Login/register-Klassen. Wenn es so einfach ist, jeden Aspekt von Laravel zu erweitern und anzupassen, sehe ich nicht, warum Sie das Rad für so viel neu erfinden.

Mein Vorschlag ist, einen Blick auf die Dokumentation zu nehmen @https://laravel.com/docs/

sehen, was Laravel zu bieten hat, und versuchen, es zu benutzen. Sie benutzen schließlich Laravel. Wenn du Laravel nicht nutzen willst, würdest du wahrscheinlich besser Eloquent etc. durch den Komponisten ziehen, ohne das zusätzliche Gewicht von Laravel zu haben.

Verwandte Themen