首頁 >php教程 >PHP开发 >Laravel建置後台登入系統步驟詳解

Laravel建置後台登入系統步驟詳解

高洛峰
高洛峰原創
2016-12-23 17:14:481527瀏覽

本文實例講述了Laravel搭建後台登入系統的方法。分享給大家供大家參考,具體如下:

今天想用laravel搭建一個後台系統,就需要最簡單的那種,有用戶登入系統,試用了下,覺得laravel的用戶登入這塊做的還真happy 。當然,前提就是,你要的使用者管理系統是最簡單的那種,就是沒有使用者權限,能登入就好。

我這裡就不用預設的user表做範例了,那樣很容易和laravel的一些預設設定混淆。

首先確認,後台的用戶表,我設計表叫做badmin,每個管理員有用戶名(username),有暱稱(nickname),有郵箱(email),有密碼(password)

這裡玩個花,使用laravel的migration來建立表格(實際上可以用不著使用這個工具建立表格)

1 安裝好最基本的laravel框架

2 建立migration檔案:

./artisan mig

3 發現app/database/migration/下面多了一個php檔案:

2014_10_19_090336_create-badmin-table.php

4 往up和down增加內容;

,app/config/local/database.php

<?php
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateBadminTable extends Migration {
   /**
   * Run the migrations.
   *
   * @return void
   */
   public function up()
   {
     Schema::create(&#39;badmin&#39;, function($table)
     {
       $table->increments(&#39;id&#39;);
        $table->string(&#39;nickname&#39;, 100)->unique();
        $table->string(&#39;username&#39;, 100)->unique();
        $table->string(&#39;email&#39;, 100)->unique();
        $table->string(&#39;password&#39;, 64);
        $table->timestamps();
     });
   }
   /**
   * Reverse the migrations.
   *
   * @return void
   */
   public function down()
   {
     Schema::drop(&#39;badmin&#39;);
   }
}

   

6 建立資料表:

./artisan migrate --env=local

資料結構如下:

<?php
return array(
  &#39;fetch&#39; => PDO::FETCH_CLASS,
  &#39;default&#39; => &#39;mysql&#39;,
  &#39;connections&#39; => array(
    &#39;mysql&#39; => array(
      &#39;driver&#39;  => &#39;mysql&#39;,
      &#39;host&#39;   => &#39;localhost&#39;,
      &#39;database&#39; => &#39;test&#39;,
      &#39;username&#39; => &#39;yejianfeng&#39;,
      &#39;password&#39; => &#39;123456&#39;,
      &#39;charset&#39;  => &#39;utf8&#39;,
      &#39;collation&#39; => &#39;utf8_unicode_ci&#39;,
      &#39;prefix&#39;  => &#39;&#39;,
    ),
  ),
  &#39;migrations&#39; => &#39;migrations&#39;,
);

   

要問這裡為什麼多出了create_at和update_at,這是laravel默認為每個表創建的字段,而且在使用Eloquent進行增改這兩個欄位

7 建立個Model:

CREATE TABLE `badmin` (
 `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
 `nickname` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
 `username` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
 `email` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
 `password` varchar(64) COLLATE utf8_unicode_ci NOT NULL,
 `created_at` timestamp NOT NULL DEFAULT &#39;0000-00-00 00:00:00&#39;,
 `updated_at` timestamp NOT NULL DEFAULT &#39;0000-00-00 00:00:00&#39;,
 PRIMARY KEY (`id`),
 UNIQUE KEY `badmin_nickname_unique` (`nickname`),
 UNIQUE KEY `badmin_username_unique` (`username`),
 UNIQUE KEY `badmin_email_unique` (`email`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

   

這裡必須要implements UserInterface和RemindableInterface

8 把model和Auth關聯上,修改

這裡的driver可以是eloquent或database,使用eloquent就告訴Auth元件說,使用者認證類別是Badmin這個類別管的。這裡的model是有命名空間的,就是說如果你的admin類是YejianfengBadmin,這裡就應該改成'YejianfengBadmin'

9 好了,這個時間其實邏輯部分已經搭建完畢了,你已經可以在controller種使用

Auth::attempt(XXX) 做權限認證

Auth::user() 取得登入使用者(一個Badmin類別)

等。

10 以下要建立一個使用者登入頁面:

11 設定路由:

<?php
use Illuminate\Auth\UserTrait;
use Illuminate\Auth\UserInterface;
use Illuminate\Auth\Reminders\RemindableTrait;
use Illuminate\Auth\Reminders\RemindableInterface;
class Badmin extends Eloquent implements UserInterface, RemindableInterface {
   use UserTrait, RemindableTrait;
   protected $table = &#39;badmin&#39;;
   protected $hidden = array(&#39;password&#39;);
   public static $rules = [
     &#39;nickname&#39; => &#39;required|alpha_num|min:2&#39;,
     &#39;username&#39; => &#39;required&#39;,
     &#39;email&#39;=>&#39;required|email|unique:badmin&#39;,
     &#39;password&#39;=>&#39;required|alpha_num|between:6,12|confirmed&#39;,
   ];
}

   


12 設定controcontro🜎 ter,app/filter.php

<?php
return array(
   // 默认的用户验证驱动
   // 可以是database或者eloquent
   &#39;driver&#39; => &#39;eloquent&#39;,
   // 只有驱动为eloquent的时候才有用
   &#39;model&#39; => &#39;Badmin&#39;,
);

   Laravel建置後台登入系統步驟詳解

將這裡認證失敗後的地址轉到/ 路徑

14 設定views/user/login.blade.php

可以看出,這裡可以直接使用Session::has和Sessionget然後基本上就完成了...

希望本文所述對大家基於Laravel框架的PHP程式設計有所幫助。

更多Laravel搭建後台登入系統步驟詳解相關文章請關注PHP中文網!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn