Laravel实现用户注册和登录(7)


<div>
<div>
    <div>
        <div>
            <div>
                <h3>欢迎登录</h3>
            </div>
            <div>
                {{ Form::open(array('url'=>'users/signin', 'class'=>'form-signin')) }}
                <fieldset>
                    <div>
                     {{ Form::text('email', null, array('class'=>'form-control', 'placeholder'=>'邮箱')) }}
                    </div>
                    <div>
                     {{ Form::password('password', array('class'=>'form-control', 'placeholder'=>'密码')) }}
                    </div>
                     {{ Form::submit('马上登录',array('class'=>'btn btn-large btn-success btn-block')) }}

</fieldset>
                {{ Form::close() }}
                  <hr/>
            </div>
        </div>
    </div>
</div>
</div>

这里的一些要点跟register.blade.php一样,你不明白的话可以看看前面的。然后我们需要在UsersController里面定义getLogin()方法:

复制代码 代码如下:


public function getLogin() {
    $this->layout->content = View::make('users.login');
}

这里也是指定了content的模版为users/login.blade.php,道理跟前面一样。
这时候我们就可以注册新用户了,如果你的浏览器还保留在:8000/users/register你可以试着输入你的用户名,邮箱,密码来注册一个,当然你也可以故意输错,看看会有什么信息返回给你。enjoy!

正常情况下,你注册完之后就吼跳到登录界面(已经写好了),但是我们在登录的时候也需要验证,如果你仔细看上面的login.blade.php的话,你会发现我们在这里将用户的登录表单提交地址设置为
'url'=>'users/signin',所以接下来的一步就是为UsersController补充postSignin()方法:

复制代码 代码如下:


    public function postSignin() {
    if (Auth::attempt(array('email'=>Input::get('email'), 'password'=>Input::get('password')))) {
        return Redirect::to('users/dashboard')->with('message', '欢迎登录');
    } else {
        return Redirect::to('users/login')->with('message', '用户名或密码错误')->withInput();
    }
}

这里我们使用Auth类来验证用户输入的信息是否和数据库的信息一致,如果验证通过,那么我们就将用户重定向到users/dashboard,如果没通过,就重新跳回登录页,情况跟注册时候几乎一模一样,我相信你看得懂。

既然是重定向到users/dashboard那么我们就来写写getDashboard()方法,到这里可能不用我说你都知道应该在UsersController添加下面的代码:

复制代码 代码如下:


public function getDashboard() {
    $this->layout->content = View::make('users.dashboard');
}

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/863eb9426af8db94032a8da2251bfc08.html