ホームページ >php教程 >PHP开发 >Laravelでバックエンドログインシステムを構築する手順の詳細な説明

Laravelでバックエンドログインシステムを構築する手順の詳細な説明

高洛峰
高洛峰オリジナル
2016-12-23 17:14:481528ブラウズ

この記事の例では、Laravel でバックエンド ログイン システムを構築する方法を説明します。詳細は次のとおりです。

今日は、laravel を使用してバックエンド システムを構築したいと思います。試してみたところ、最も簡単なシステムが必要だと感じました。 laravelのユーザーログインは本当に嬉しいです。もちろん、必要なユーザー管理システムが最も単純なものであることが前提です。つまり、ユーザーのアクセス許可なしでログインできれば十分です。

Laravel のデフォルト設定の一部と混同されやすいため、ここではデフォルトのユーザーテーブルを例として使用しません。

まず確認します。バックグラウンドのユーザーテーブルです。各管理者にはユーザー名 (ユーザー名)、ニックネーム (ニックネーム)、電子メールアドレス (電子メール)、およびパスワード (パスワード) が割り当てられるように設計しました。

ここで楽しんでください。laravel の移行を使用してテーブルを作成します (実際には、このツールを使用してテーブルを作成する必要はありません)

1 最も基本的な laravel フレームワークをインストールします

2 移行ファイルを作成します:

./artisan merge:make create-badmin-table

3 app/database/migration/ の下に追加の php ファイルが見つかりました:

2014_10_19_090336_create-badmin-table.php

4 コンテンツを上下に追加します。 5 ローカルデータベースを設定します、 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 merge --env=local

このとき、データベースに移動しました追加の badmin テーブルがあることがわかりました。 データ構造は次のとおりです。

<?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 によって作成されるフィールドです。これら 2 つは、Eloquent を使用して追加、削除、変更、クエリを行うときに自動的に更新されます。 app/config/auth.php

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;

ドライバーはここにあります。 eloquent またはデータベースにすることができます。 eloquent を使用すると、ユーザー認証クラスが Badmin クラスによって管理されていることを Auth コンポーネントに伝えます。ここのモデルには名前空間があります。つまり、管理者クラスが YejianfengBadmin の場合、「YejianfengBadmin」に変更する必要があります

9 さて、この時点でロジック部分は実際に構築されており、すでに使用できますコントローラー内で

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 コントローラーを設定します:

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


13 フィルターを設定します、app/fil ter.php

りー

Laravelでバックエンドログインシステムを構築する手順の詳細な説明

認証失敗後のアドレスを/pathに変更

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

ご覧のとおり、Session::hasとSession::getはここで直接使用できます

これで基本的には完了です...

この記事が皆様のLaravelフレームワークをベースにしたPHPプログラム設計のお役に立てれば幸いです。

Laravel でバックエンド ログイン システムを構築する手順の詳細な説明については、PHP 中国語 Web サイトに注目してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。