Php 如何使用Laravel框架创建注册模式?

Php 如何使用Laravel框架创建注册模式?,php,twitter-bootstrap,laravel,login,laravel-routing,Php,Twitter Bootstrap,Laravel,Login,Laravel Routing,我在我的布局中有一个创建用户的模式(作为注册选项),我可以正确创建用户,但我需要自动登录并将其重定向到另一个页面,我如何才能做到 这是我的密码: 标题布局中的我的模态 <div id="LoginModal" class="modal fade" role="dialog"> <div class="modal-dialog"> <div class="modal-content" style="background-image: url(/

我在我的布局中有一个创建用户的模式(作为注册选项),我可以正确创建用户,但我需要自动登录并将其重定向到另一个页面,我如何才能做到

这是我的密码:

标题布局中的我的模态

<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>

}

您可以在
createUser
功能中保存用户后,通过添加这两行代码登录用户并重定向用户:

Auth::login($user);

Redirect::to('/collection');

您可以在
createUser
函数中保存用户后,通过添加这两行代码登录用户并重定向用户:

Auth::login($user);

Redirect::to('/collection');

我认为这样的东西应该在你的控制器中起作用:

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('/');                                                
}                                                                     
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('/');                                                
}

我认为类似的东西应该在您的控制器中工作:

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('/');                                                
}                                                                     
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('/');                                                
}

为什么不使用Laravel的内置身份验证

laravel5.3
中,您应该看到一个名为
app/Http/Controllers/Auth/RegisterController.php的类

默认情况下,此控制器使用名为
RegistersUser
的特性。这门课做的正是你所想的。它注册一个用户。 您可以重写
RegisterController.php
类中的任何trait方法来添加您想要的任何功能

您还有一个登录用户的
LoginController.php
,它甚至提供了一个名为
authenticated()
的方法,您可以在
LoginController.php
中重写该方法,以便在用户经过身份验证后执行各种操作

作为旁注,我不确定你是否完全理解laravel的“要点”,或者它实际上提供了什么。您真的需要创建自己的
UserModel
?它内置了一个用户模型,该模型可与框架的其余部分(尤其是登录/注册类)无缝协作。当在laravel中扩展和定制这么多内容的每一个方面都这么容易时,我不明白你为什么要为这么多内容重新发明轮子

我的建议是看一下文档@


看看拉雷维尔能提供什么,并尝试使用它。你毕竟是在用拉威尔。如果您不打算利用Laravel提供的功能,那么您最好通过composer引入雄辩等功能,而不增加Laravel的分量。

为什么不使用Laravel的内置身份验证

laravel5.3
中,您应该看到一个名为
app/Http/Controllers/Auth/RegisterController.php的类

默认情况下,此控制器使用名为
RegistersUser
的特性。这门课做的正是你所想的。它注册一个用户。 您可以重写
RegisterController.php
类中的任何trait方法来添加您想要的任何功能

您还有一个登录用户的
LoginController.php
,它甚至提供了一个名为
authenticated()
的方法,您可以在
LoginController.php
中重写该方法,以便在用户经过身份验证后执行各种操作

作为旁注,我不确定你是否完全理解laravel的“要点”,或者它实际上提供了什么。您真的需要创建自己的
UserModel
?它内置了一个用户模型,该模型可与框架的其余部分(尤其是登录/注册类)无缝协作。当在laravel中扩展和定制这么多内容的每一个方面都这么容易时,我不明白你为什么要为这么多内容重新发明轮子

我的建议是看一下文档@


看看拉雷维尔能提供什么,并尝试使用它。你毕竟是在用拉威尔。如果您不打算利用Laravel提供的功能,您最好通过composer引入雄辩等功能,而不必增加Laravel的权重。

为此,请确保用户模型使用
Authenticatable
。OP似乎使用自己的用户模型。为此,请确保用户模型使用
authenticable
。OP似乎使用自己的用户模型