亚洲免费不卡_在线视频精品_国产尤物精品_久久久久网址_久久精品91_欧美va天堂在线_狠狠入ady亚洲精品_亚洲午夜精品福利_国产精品草草_午夜精品久久99蜜桃的功能介绍

示例詳解Laravel的注冊重構
來源:易賢網 閱讀:1778 次 日期:2016-08-29 14:27:50
溫馨提示:易賢網小編為您整理了“示例詳解Laravel的注冊重構”,方便廣大網友查閱!

1. 首先確定用戶注冊的路由

我們在安裝好laravel的時候默認生成的注冊是用郵箱進行注冊的,并且有些選項不需要,有些還需要加一些表單選項

我們注冊的話,并不是可以隨便注冊的,只有一些超級管理員才能進行注冊

首先我們使用上次創建的UserController進行配置,如果沒有的話,可以使用php artisan make:controller UserController創建一個控制器類

然后創建兩條路由Route::get('register', 'UserController@getRegister')和Route::post('register', 'UserController@postRegister')

前者是顯示一個注冊的頁面get請求,后面是注冊賬號的post請求。

2. 顯示注冊賬號頁面

這個使用的是getRegister這個方法,這個方法只需要顯示一個視圖所以并沒有特別的邏輯

public function getRegister()

{

 return view('auth.register');

}

3. 請求注冊賬號

這個使用的是postRegister這個方法

注冊賬號的話和重置密碼一樣,而且比注冊賬號還要簡單點。

我們在往數據庫里插入一條用戶紀錄的時候,可以使用User::create($data)進行插入。

$data是個數組,里面存放了每個字段的鍵和值

public function postRegister(Request $request)

{

 $rules = [

  'username'=>'required|unique:finance_enewsuser',

  'password' => 'required|between:6,20|confirmed'

 ];

 $messages = [

  'required'=>':attribute不能為空',

  'unique'=>'用戶名已被注冊',

  'between' => '密碼必須是6~20位之間',

  'confirmed' => '新密碼和確認密碼不匹配'

 ];

 $username = $request->input('username');

 $password = $request->input('password');

 $group = $request->input('group');

 $data = $request->all();

 $validator = Validator::make($data, $rules, $messages);

 if ($validator->fails()) {

  return back()->withErrors($validator);

 }

 $data = [

  'username' => $username,

  'password' => bcrypt($password),

  'groupid' => $group,

  'checked' => 0,

  'styleid' => 1,

  'filelevel' => 0,

  'loginnum' => 0,

  'lasttime' => time(),

  'lastip' => '127.0.0.1',

  'truename' => '',

  'email' => '',

  'pretime' => time(),

  'preip' => '127.0.0.1',

 ];

 User::create($data); //插入一條新紀錄,并返回保存后的模型實例

 //如果注冊后還想立即登錄的話,可以使用$user = User::create($data); Auth::login($user); 進行認證

 return redirect('/');

}

4. 完成后的示例

UserController:

public function getRegister()

{

 return view('auth.register');

}

public function postRegister(Request $request)

{

 $rules = [

  'username'=>'required|unique:finance_enewsuser',

  'password' => 'required|between:6,20|confirmed'

 ];

 $messages = [

  'required'=>':attribute不能為空',

  'unique'=>'用戶名已被注冊',

  'between' => '密碼必須是6~20位之間',

  'confirmed' => '新密碼和確認密碼不匹配'

 ];

 $username = $request->input('username');

 $password = $request->input('password');

 $group = $request->input('group');

 $data = $request->all();

 $validator = Validator::make($data, $rules, $messages);

 if ($validator->fails()) {

  return back()->withErrors($validator);

 }

 $data = [

    'username' => $username,

    'password' => bcrypt($password),

    'groupid' => $group,

    'checked' => 0,

    'styleid' => 1,

    'filelevel' => 0,

    'loginnum' => 0,

    'lasttime' => time(),

    'lastip' => '127.0.0.1',

    'truename' => '',

    'email' => '',

    'pretime' => time(),

    'preip' => '127.0.0.1',

   ];

 User::create($data); //插入一條新紀錄,并返回保存后的模型實例

 return redirect('/');

}

register.blade:

<form class="login-form" action="" method="post">

 {!! csrf_field() !!}

 <h3 class="font-green">Sign Up</h3>

 @if(count($errors) > 0)

  <div class="alert alert-danger display-hide" style="display: block;">

   <button class="close" data-close="alert"></button>

   <span> </span>

  </div>

 @endif

 <div class="form-group">

  <label class="control-label visible-ie8 visible-ie9">用戶名</label>

  <input class="form-control placeholder-no-fix" type="text" autocomplete="off" placeholder="Username" name="username"> </div>

 <div class="form-group">

  <label class="control-label visible-ie8 visible-ie9">密碼</label>

  <input class="form-control placeholder-no-fix" type="password" autocomplete="off" id="register_password" placeholder="Password" name="password"> </div>

 <div class="form-group">

  <label class="control-label visible-ie8 visible-ie9">重復密碼</label>

  <input class="form-control placeholder-no-fix" type="password" autocomplete="off" placeholder="Repeat password" name="password_confirmation"> </div>

 <div class="form-group">

  <label class="control-label visible-ie8 visible-ie9">用戶組</label>

  <select name="group" class="form-control">

    <option value="1"> 超級管理員 </option>

    <option value="2"> 管理員 </option>

    <option value="3"> 編輯 </option>

  </select>

 </div>

 <div class="form-actions">

  <button type="submit" id="register-submit-btn" class="btn btn-success uppercase pull-right">注冊</button>

 </div>

</form>

5. 中間件–用戶必須登錄

現在注冊都完成了,我們就差用戶的判斷了。 需求注冊賬號必須只能是有超級管理員權限的賬號才可以注冊。

這種情況下按照我們一般的步驟就是在postRegister方法里直接查出用戶的信息,然后查看用戶是否滿足這個權限,不滿足的情況下就跳轉到其它頁面。

這種方法可以,但是,我們既然有超級管理員和管理員這些權限區分,肯定不止一個地方使用,其它地方也會用到。

然后會有人想到在model里寫個方法,以后有需要都可以直接調用。

這個方法也可以,不過,我們推薦使用laravel提供的中間件這個功能,這個功能非常強大,也非常好用。現在我們就使用中間件這個功能。

因為我們是后臺內容管理系統,所以,我們首先創建一個中間件,功能是,所有頁面進入前,必須是登錄狀態,否則跳到登錄頁。

查看手冊發現可以使用php artisan make:middleware CheckLoginMiddleware命令創建一個中間件,當然復制一個差不多的文件,改下也是一樣的。

然后會在app/Http/Middleware/目錄下創建了一個CheckLoginMiddleware中間件文件,里面只有一個handle()方法,我們直接在里面增加我們的功能

<?php

namespace App\Http\Middleware;

use Closure;

use Auth;

class CheckLoginMiddleware

{

 public function handle($request, Closure $next)

 {

  //使用Auth方法,需要引入use Auth;方法

  //$request->is('login')表示請求的URL是否是登錄頁

  //因為我們打算使用全局的,所以,需要把登錄頁排除,不然會無限重定向

  //如果你的登錄頁不是/login,而是/auth/login的話,就寫$request->is('auth/login')

  //并且我們要在請求處理后執行其任務,因為我們需要獲取到用戶的登錄信息

  $response = $next($request);

  if (!Auth::check() && !$request->is('login')) {

   return redirect('/login');

  }

  return $response;

 }

}

這個中間件的功能是,如果有路由產生,首先使用Auth::check()判斷用戶是否登錄,如果沒有登錄的跳轉到登錄頁。

方法寫好了,但是還不能使用,我們需要注冊下這個中間件,告訴框架我們這個中間件寫好了,可以使用了,使用的范圍是哪里。

在app/Http/目錄下有個Kernel.php文件是注冊這個中間件的,也就是告訴框架,我們寫好了這個中間件。

而Kernel.php文件里有兩個數組屬性,一個$middleware表示全局使用,一個$routeMiddleware表示可以選擇使用。

全局使用的意思是,不管你請求哪個頁面,都會先執行這個中間件。

選擇使用表示,需要哪個HTTP請求,要求執行中間件,就在哪個地方執行。

這里每個頁面都要求必須登錄的話,可定是注冊一個全局的,在$middleware數組屬性里加入一條

\App\Http\Middleware\CheckLoginMiddleware::class

注冊下,就可以使用了

>注意:請記住,如果定義全局的要格外小心,比如上面我們要排除登錄頁,不然因為用戶沒有登錄,所以在哪個頁面都會重定向到登錄頁,當然也包括登陸頁

6. 中間件–特殊頁面需要驗證用戶組

現在是進行用戶權限頁面的限制,同樣我們也要重新創建一個中間件

使用php artisan make:middleware CheckGroupMiddleware創建一個新的中間件,用來判斷這個用戶是否滿足這個權限

<?php

namespace App\Http\Middleware;

use Closure;

use Auth;

class CheckGroupMiddleware

{

 public function handle($request, Closure $next)

 {

  $user = Auth::user();

  if ($user->groupid != 1) {

   return redirect('/');

  }

  return $next($request);

 }

}

這里我們還是通過Auth::user()來獲取到用戶的信息,然后判斷用戶的組,不屬于超級管理員就跳到首頁。

然后我們在到app/Http/目錄下有個Kernel.php文件是注冊這個中間件的,這次我們注冊為可以選擇的中間件。

這個中間件因為是可以選擇的,所以我們還需要給它起個別名,在$routeMiddleware數組屬性里加如一條

'user.group' => \App\Http\Middleware\CheckGroupMiddleware::class

創建一個可以使用usergroup這個名字使用的中間件。

創建好后,我們可以選擇在哪里使用,一個是在router.php的路由文件里加入,一個是在controller里使用

在router.php文件里使用

Route::get('/', ['middleware' => ['user.group'], function () {

 //

}]);

在控制器內使用

$this->middleware('user.group');

這里我們選擇在路由里添加中間件。讓注冊頁面只能是超級管理員才可以注冊

Route::get('register', 'UserController@getRegister')->middleware('user.group');

Route::post('register', 'UserController@postRegister')->middleware('user.group');

我們目前只有兩個路由要判斷權限,所以使用了鏈式的寫法,當然你也可以按照手冊里上使用組的方式,組的方式更為優雅。

當然如果你的整個控制器內的方法都需要中間件進行驗證過濾的話,你也可以創建組的形式,也可以直接在控制器內使用__construct方法,讓每次請求這個控制器時,先執行中間件

class MyController extends Controller

{

 public function __construct()

 {

  $this->middleware('user.group');

 }

 public function index()

 {

  return view('my.index');

 }

}

總結

以上就是Laravel注冊重構的全部內容,希望本文的內容對大家使用Laravel能有所幫助

更多信息請查看網絡編程
易賢網手機網站地址:示例詳解Laravel的注冊重構
由于各方面情況的不斷調整與變化,易賢網提供的所有考試信息和咨詢回復僅供參考,敬請考生以權威部門公布的正式信息和咨詢為準!
關于我們 | 聯系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點

版權所有:易賢網

亚洲免费不卡_在线视频精品_国产尤物精品_久久久久网址_久久精品91_欧美va天堂在线_狠狠入ady亚洲精品_亚洲午夜精品福利_国产精品草草_午夜精品久久99蜜桃的功能介绍
久久先锋资源| 黑人巨大精品欧美一区二区小视频| 亚洲影音先锋| 欧美在线91| 一本色道久久精品| 午夜欧美理论片| 一本色道久久综合亚洲精品高清| 久久亚洲美女| 国产精品免费在线 | 亚洲丰满在线| 久久国产精品久久精品国产| 极品日韩av| 欧美成人嫩草网站| 男女精品网站| 国产欧美日韩亚洲| 亚洲高清视频一区| 欧美日韩精品免费观看视一区二区 | 一区二区三区四区五区在线| 午夜国产一区| 欧美亚洲免费高清在线观看| 亚洲日产国产精品| 狠狠色综合网站久久久久久久| 久久aⅴ国产紧身牛仔裤| 亚洲欧洲日本一区二区三区| 久久久久se| 免费在线成人| 奶水喷射视频一区| 亚洲欧美清纯在线制服| 亚洲精品影院| 日韩午夜免费| 亚洲经典自拍| 99精品热视频只有精品10| 国产精品sm| 欧美三级第一页| 欧美精品麻豆| 午夜免费电影一区在线观看| 久久婷婷丁香| 久久午夜视频| 欧美在线播放一区| 午夜精品999| 欧美精品免费观看二区| 午夜精品999| 国产精品99免费看| 好看的亚洲午夜视频在线| 欧美日韩网址| 一区在线播放| 99riav国产精品| 国产精品一区二区欧美| 麻豆久久婷婷| 韩国一区二区三区在线观看 | 国产精品久久久久久模特| 亚洲国产国产亚洲一二三| 在线观看亚洲| 亚洲综合欧美| 欧美国内亚洲| 在线看片一区| 性色av一区二区怡红| 久久综合狠狠| 狠狠爱综合网| 国产精品久久久久久久久久直播| 翔田千里一区二区| 欧美精品aa| 一本一本a久久| 欧美在线一二三区| 最新国产拍偷乱拍精品| 国产日韩欧美一区二区三区在线观看| 国产精品日韩高清| 午夜久久tv| 国产色综合网| 国产精品sm| 正在播放亚洲| 国产精品theporn| 国产精品久久久久久模特| 狂野欧美一区| 99国产一区| 久久综合久久久| 91久久精品国产91久久性色tv| 亚洲欧美日韩专区| 亚洲国产精品久久久久久女王| 国产精品手机视频| 好吊视频一区二区三区四区| 性欧美暴力猛交另类hd| 亚洲激情国产| 国产一区二区三区四区hd| 午夜一区不卡| 国产日韩一区| 亚洲裸体俱乐部裸体舞表演av| 久久精品日韩| 国产一级久久| 91久久国产自产拍夜夜嗨| 欧美福利一区二区三区| 亚洲一区二区四区| 国产欧美日本| 99在线精品视频在线观看| 国产综合久久| 欧美视频观看一区| 午夜视频精品| 欧美日韩少妇| 午夜视频久久久| 欧美二区不卡| 午夜精品影院| 欧美色图麻豆| 国内精品亚洲| 伊人激情综合| 在线观看的日韩av| 一区二区亚洲| 亚洲黄色影片| 一区二区三区成人精品| 99视频精品免费观看| 亚洲精品中文字幕在线| 亚洲国产免费| 99视频一区| 一本色道久久综合亚洲精品婷婷| 99国产成+人+综合+亚洲欧美| 国产综合色产| 影音先锋久久精品| 亚洲欧洲日夜超级视频| 亚洲精品九九| 国产日韩精品久久| 亚洲欧美日韩在线观看a三区| 亚洲欧美日韩国产一区| 久久精品动漫| 国产专区一区| 一区二区免费在线视频| 亚洲综合欧美| 欧美片第1页综合| 在线欧美日韩| 亚洲欧美日韩视频二区 | 99精品福利视频| 在线视频亚洲| 久久精品在线| 亚洲午夜精品久久久久久app| 最新国产拍偷乱拍精品| 国产精品伊人日日| 欧美日本国产| 国产日韩一区二区三区在线| 亚洲在线观看| 欧美午夜不卡影院在线观看完整版免费| 欧美日韩一区在线观看视频| 在线观看亚洲| 美女黄色成人网| 一区精品在线| 久久狠狠婷婷| 在线 亚洲欧美在线综合一区| 在线亚洲免费| 欧美性色综合| 国产精品亚洲产品| 国产精品观看| 久久本道综合色狠狠五月| 国产一区久久| 亚洲免费中文| 一区二区三区我不卡| 亚洲欧美成人综合| 亚洲国内在线| 欧美三级网页| 久久精品一区二区三区中文字幕| 伊人激情综合| 欧美日本韩国一区二区三区| 亚洲一区二区伦理| 日韩亚洲精品在线| 精品9999| 红桃视频国产精品| 午夜精品剧场| 久久久精品网| 亚洲免费网站| 国产日韩一区二区三区| 亚洲国产综合在线看不卡| 欧美日韩精选| 欧美一区1区三区3区公司| 亚洲日本视频| 亚洲国产高清视频| 黄色另类av| 国产精品v亚洲精品v日韩精品| 久久精品国产清高在天天线 | 欧美黄在线观看| 亚洲免费在线| 性一交一乱一区二区洋洋av| 国产精品久久久久久久久婷婷| 在线观看欧美亚洲| 国产一区视频在线观看免费| 欧美激情五月| 欧美午夜一区| 国产一区清纯| 亚洲青涩在线| 一本色道久久综合亚洲精品婷婷 | 香蕉久久夜色| 午夜在线播放视频欧美| 国产精品日本| 免费亚洲一区二区| 久久综合导航| 国产精品二区二区三区| 亚洲性图久久| 亚洲东热激情| 国产午夜久久| 久久成人亚洲| 欧美a级在线| 狠狠干成人综合网| 亚洲经典在线| 国产精品乱看| 欧美成人综合| 亚洲第一网站| 国产精品普通话对白| 亚洲影院一区| 欧美精品一区二区三区久久久竹菊| 欧美日韩1区2区3区| 亚洲成人资源| 另类亚洲自拍| 亚洲私人影院| 亚洲欧美国产不卡| 欧美日韩国产亚洲一区| 91久久国产自产拍夜夜嗨| 亚洲一区图片| 黄色av日韩| 久久av一区二区| 伊人久久久大香线蕉综合直播| 一区在线视频观看| 六月婷婷久久| 在线看片欧美| 蜜桃av噜噜一区二区三区| 国产精品二区二区三区| 一本色道久久99精品综合| 美脚丝袜一区二区三区在线观看| 欧美色综合网| 亚洲欧美日韩精品久久久| 国产一区视频观看| 欧美在线综合| 日韩视频在线观看国产| 午夜久久99| 免费日韩av片| 夜久久久久久| 国内精品久久久久久久97牛牛| 在线一区亚洲| 在线国产日韩| 欧美日韩国产三区| 老司机一区二区三区| 亚洲欧洲一区二区在线观看| 老司机午夜精品视频| 亚洲美女网站| 激情综合中文娱乐网| 欧美不卡在线| 久久久蜜桃一区二区人| 夜夜精品视频| 影音先锋国产精品| 欧美午夜精品理论片a级大开眼界| 亚洲一区bb| 国产伦精品一区二区三| 99精品国产在热久久| 激情自拍一区| 欧美亚韩一区| 欧美三级视频| 欧美日韩免费高清| 欧美综合77777色婷婷| 国产精品久久久久久久久久妞妞 | 国产精品a级| 久久精品人人| 免费一级欧美片在线播放| 国产一区二区三区奇米久涩| 亚洲精品1区2区| 亚洲精品一品区二品区三品区| 伊人成年综合电影网| 欧美日韩综合网| 国产精品swag| 在线欧美不卡| 亚洲人成免费| 国产日韩欧美在线播放不卡| aa国产精品| 国产精品综合| 久久riav二区三区| 久久只有精品| 国产精品二区三区四区| 雨宫琴音一区二区在线| 亚洲精品男同| 亚洲深夜av| 久久免费黄色| 亚洲私拍自拍| 国产日产高清欧美一区二区三区| 国产精品腿扒开做爽爽爽挤奶网站| 亚洲一级在线| 午夜精品电影| 亚洲精品乱码久久久久久蜜桃麻豆| 亚洲美女毛片| 久久午夜精品一区二区| 国产精品v欧美精品v日本精品动漫 | 黑人一区二区| 99精品久久| 久久一区激情| 亚洲黄色成人久久久| 国产伦精品一区二区三区| 久久久噜噜噜久久狠狠50岁| 国产精品a久久久久| 亚洲欧洲一二三| 久久精品国产第一区二区三区最新章节 | 国产综合精品一区| 亚洲黄网站黄| 久久久久久久久久久一区| 国产在线成人| 午夜亚洲视频| 亚洲日本国产| 欧美日韩国产一区精品一区| 国产欧美69| 国产精品www994| 久久xxxx| 一区二区三区三区在线| 欧美日韩综合| 久久国产日韩欧美| 99国产精品久久久久老师| 欧美国产视频在线观看| 国产精品入口66mio| 亚洲网站视频| 午夜日韩激情| 久久婷婷丁香| 亚洲综合二区| 在线视频一区观看| 激情综合激情| 国产综合色一区二区三区| 久久精品女人的天堂av| 日韩一级不卡| 精品福利电影| 欧美日韩三级| 欧美激情第六页| 久久久久久国产精品一区| 国产欧美一区二区三区另类精品| 国产一区亚洲| 国产精品v欧美精品v日本精品动漫 | 久久久久91| 国产亚洲激情| 一本色道精品久久一区二区三区 | 亚洲国产日韩欧美| 黑丝一区二区| 国产综合精品一区| 欧美日韩一区二区高清| 欧美区国产区| 欧美日韩精品| 很黄很黄激情成人| 精品二区视频| 99视频一区| 亚洲少妇一区| 亚洲欧美久久| 久久午夜视频| 午夜精品免费| 韩国一区二区三区美女美女秀| 欧美日韩免费高清| 国产精品v欧美精品v日韩| 欧美天堂亚洲电影院在线观看| 欧美日韩成人| 尤物精品在线| 99国产精品久久久久久久成人热| 99国产成+人+综合+亚洲欧美| 一本色道久久99精品综合| 国产精品视区| 欧美91大片| 在线观看视频日韩| 国产日韩欧美一区| 欧美专区一区二区三区| 久久在线91| 影音先锋中文字幕一区二区| 日韩视频二区| 免费永久网站黄欧美| 午夜激情一区| 亚洲毛片播放| 久久综合九色| 亚洲激情黄色| 久久久久久久欧美精品| 欧美日韩一区二区视频在线 | 欧美日韩精品免费观看| 狠狠爱成人网| 国产精品一区毛片| 欧美日韩国产不卡在线看| 亚洲精品视频一区二区三区| 久久av最新网址| 亚洲高清网站| 欧美在线二区| 夜夜嗨av一区二区三区网站四季av| 性色一区二区三区| 激情五月***国产精品| 翔田千里一区二区| 亚洲福利免费| 欧美~级网站不卡| 亚洲大胆av| 欧美a级一区| 亚洲一区二区三区免费在线观看| 欧美视频亚洲视频| 免费一区二区三区| 亚洲精品极品| 国产一区二区三区四区三区四| 国产精品一区二区欧美| 很黄很黄激情成人| 欧美一区视频| 午夜亚洲性色福利视频| 91久久精品国产91久久性色tv| 欧美韩国一区| 麻豆av福利av久久av| 日韩一级大片| 亚洲国产激情| 亚洲网站视频| 欧美午夜在线| 欧美国产免费| 欧美成人日韩| 久久久99国产精品免费| 国产手机视频一区二区|