Laravel5.5 搭建简单的社区(五)--用户登录

定义一条登录的路由:

// 用户登录
Route::get('/user/login', 'UsersController@login');

添加相应方法后返回视图:

    public function login()
    {
        return view('user.login');
    }

创建login视图:

复制代码
@extends('app')

@section('content')
    <div class="container">
        <div class="row">
            <div class="col-md-6 col-md-offset-3" role="main">
            {!! Form::open(['method'=>'POST','url'=>'/user/login']) !!}
                <!--- Email Field --->
                <div class="form-group">
                    {!! Form::label('email', 'Email:') !!}
                    {!! Form::email('email', null, ['class' => 'form-control']) !!}
                </div>
                <!--- Password Field --->
                <div class="form-group">
                    {!! Form::label('password', 'Password:') !!}
                    {!! Form::password('password', ['class' => 'form-control']) !!}
                </div>
                <!-- 提交 -->
                {!! Form::submit('登录',['class' => 'btn btn-primary form-control']) !!}
                <div>
                    @if($errors->any())
                        <ul class="list-group">
                            @foreach($errors->all() as $error)
                                <li class="list-group-item list-group-item-danger">{{ $error }}</li>
                            @endforeach
                        </ul>
                    @endif
                </div>
                {!! Form::close() !!}
            </div>
        </div>
    </div>
@stop
复制代码

到此我们还需要创建一个Request:

php artisan make:request UserLoginRequest 

设置规则

复制代码
class UserLoginRequest extends Request
{
    /**
     * Determine if the user is authorized to make this request.
     *
     * @return bool
     */
    public function authorize()
    {
        return true;
    }

    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()
    {
        return [
            'email' => 'required|email',
            'password' => 'required|min:6',
        ];
    }
}
复制代码

注册登录验证路由:

// 用户登录验证
Route::post('/user/login', 'UsersController@signin');

在控制器中声明方法:

复制代码
    public function signin(Requests\UserLoginRequest $request)
    {
        // 直接使用门面进行认证
        if (\Auth::attempt([
            'email' => $request->get('email'),
            'password' => $request->get('password'),
        ])){
            // 认证成功 跳转到首页
            return redirect('/');
        }
        // 如果认证失败的话 使用session来提示错误
        \Session::flash('user_login_failed', '账号或密码错误');
        return redirect('/user/login')->withInput();
    }
复制代码

HTML中对应的session用法:

                @if(\Session::has('user_login_failed'))
                <div class="alert alert-danger" role="alert">
                    {{ \Session::get('user_login_failed') }}
                </div>
                @endif

在导航栏展示用户名,进入app.blade.php 增加判断语句:

复制代码
                <ul class="nav navbar-nav navbar-right">
                    @if(\Auth::check())
                        <li><a href="../navbar-static-top/">{{ \Auth::user()->name }}</a></li>
                    @else
                        <li><a href="/user/login">登 录</a></li>
                        <li><a href="/user/register">注 册</a></li>
                    @endif
复制代码

这样 登陆进来后就可以看到用户名了。

猜你喜欢

转载自blog.csdn.net/gh254172840/article/details/78995884
今日推荐