Laravel5.5 搭建簡單的社群(五)--使用者登入
阿新 • • 發佈:2018-12-30
定義一條登入的路由:
// 使用者登入 Route::get('/user/login', '[email protected]');
新增相應方法後返回檢視:
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', '[email protected]');
在控制器中宣告方法:
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
這樣 登陸進來後就可以看到使用者名稱了。