ホームページ > 記事 > PHPフレームワーク > Laravel5を使ってログイン登録機能を実装する方法
Laravel は、PHP 言語に基づくオープンソースの Web フレームワークであり、ますます多くの開発者によって使用されています。 Laravel フレームワークには、ビュー、ルーティング、データベース操作など、多くの便利な組み込み機能があり、拡張もサポートしています。この記事では、Laravel 5を使ってログイン・登録機能を実装する方法を紹介します。
まず、システムに Laravel をインストールする必要があります。インストール方法はLaravelの公式ドキュメントを参照するか、自分で検索してください。
ログインおよび登録機能では、データベースを使用してユーザー情報を保存する必要があります。これを行う前に、「laravel_login」という名前のデータベースを作成する必要があります。コマンドラインに次のコマンドを入力できます:
mysql -u username -p CREATE DATABASE laravel_login;
ここで、「username」は MySQL ユーザー名です。これにより、「laravel_login」という名前の空のデータベースが作成されます。
Laravel 5 では、移行を通じてデータベーステーブルを作成および管理します。まず、移行ファイルを生成する必要があります。コマンドラインに次のように入力します:
php artisan make:migration create_users_table
このコマンドは移行ファイルを生成します。このファイルはデフォルトで「database\migrations」フォルダーに保存されます。
この移行ファイルを編集し、「up()」メソッドでユーザー テーブルのフィールドを定義します:
public function up() { Schema::create('users', function (Blueprint $table) { $table->increments('id'); $table->string('name'); $table->string('email')->unique(); $table->string('password'); $table->rememberToken(); $table->timestamps(); }); }
次に、次のコマンドを入力してこの移行を実行し、ユーザー テーブルを生成します。 ##
php artisan migrate
php artisan make:controller AuthControllerこのコマンドは、「AuthController」という名前のコントローラーを作成します。このコントローラーは、デフォルトで「app\Http\Controllers」フォルダーに保存されます。 コントローラー コードは次のとおりです:
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class AuthController extends Controller { public function showLoginForm() { return view('auth.login'); } public function login(Request $request) { // 登陆逻辑 } public function showRegistrationForm() { return view('auth.register'); } public function register(Request $request) { // 注册逻辑 } public function logout(Request $request) { // 注销逻辑 } }次に、フォームをレンダリングするためのビュー テンプレートを作成する必要があります。 「resources\views\auth」フォルダーに「login.blade.php」と「register.blade.php」という名前のファイルを作成します。これらはそれぞれログイン ページ テンプレートと登録ページ テンプレートです。 テンプレート コードは次のとおりです: ログイン テンプレート:
@extends('layouts.app') @section('content') <div class="container"> <div class="row"> <div class="col-md-8 col-md-offset-2"> <div class="panel panel-default"> <div class="panel-heading">Login</div> <div class="panel-body"> <form class="form-horizontal" method="POST" action="{{ route('login') }}"> {{ csrf_field() }} <div class="form-group{{ $errors->has('email') ? ' has-error' : '' }}"> <label for="email" class="col-md-4 control-label">E-Mail Address</label> <div class="col-md-6"> <input id="email" type="email" class="form-control" name="email" value="{{ old('email') }}" required autofocus> @if ($errors->has('email')) <span class="help-block"> <strong>{{ $errors->first('email') }}</strong> </span> @endif </div> </div> <div class="form-group{{ $errors->has('password') ? ' has-error' : '' }}"> <label for="password" class="col-md-4 control-label">Password</label> <div class="col-md-6"> <input id="password" type="password" class="form-control" name="password" required> @if ($errors->has('password')) <span class="help-block"> <strong>{{ $errors->first('password') }}</strong> </span> @endif </div> </div> <div class="form-group"> <div class="col-md-6 col-md-offset-4"> <div class="checkbox"> <label> <input type="checkbox" name="remember" {{ old('remember') ? 'checked' : '' }}> Remember Me </label> </div> </div> </div> <div class="form-group"> <div class="col-md-8 col-md-offset-4"> <button type="submit" class="btn btn-primary"> Login </button> <a class="btn btn-link" href="{{ route('password.request') }}"> Forgot Your Password? </a> </div> </div> </form> </div> </div> </div> </div> </div> @endsection登録テンプレート:
@extends('layouts.app') @section('content') <div class="container"> <div class="row"> <div class="col-md-8 col-md-offset-2"> <div class="panel panel-default"> <div class="panel-heading">Register</div> <div class="panel-body"> <form class="form-horizontal" method="POST" action="{{ route('register') }}"> {{ csrf_field() }} <div class="form-group{{ $errors->has('name') ? ' has-error' : '' }}"> <label for="name" class="col-md-4 control-label">Name</label> <div class="col-md-6"> <input id="name" type="text" class="form-control" name="name" value="{{ old('name') }}" required autofocus> @if ($errors->has('name')) <span class="help-block"> <strong>{{ $errors->first('name') }}</strong> </span> @endif </div> </div> <div class="form-group{{ $errors->has('email') ? ' has-error' : '' }}"> <label for="email" class="col-md-4 control-label">E-Mail Address</label> <div class="col-md-6"> <input id="email" type="email" class="form-control" name="email" value="{{ old('email') }}" required> @if ($errors->has('email')) <span class="help-block"> <strong>{{ $errors->first('email') }}</strong> </span> @endif </div> </div> <div class="form-group{{ $errors->has('password') ? ' has-error' : '' }}"> <label for="password" class="col-md-4 control-label">Password</label> <div class="col-md-6"> <input id="password" type="password" class="form-control" name="password" required> @if ($errors->has('password')) <span class="help-block"> <strong>{{ $errors->first('password') }}</strong> </span> @endif </div> </div> <div class="form-group"> <label for="password-confirm" class="col-md-4 control-label">Confirm Password</label> <div class="col-md-6"> <input id="password-confirm" type="password" class="form-control" name="password_confirmation" required> </div> </div> <div class="form-group"> <div class="col-md-6 col-md-offset-4"> <button type="submit" class="btn btn-primary"> Register </button> </div> </div> </form> </div> </div> </div> </div> </div> @endsection
Route::get('login', 'AuthController@showLoginForm')->name('login'); Route::post('login', 'AuthController@login'); Route::get('register', 'AuthController@showRegistrationForm')->name('register'); Route::post('register', 'AuthController@register'); Route::post('logout', 'AuthController@logout')->name('logout');これで、次のアドレスにアクセスして登録とログイン ページを表示できるようになります:
http://yourdomain.com/register http://yourdomain.com/loginそして次のアドレスにアクセスして完了します。ログインとログアウトの操作:
http://yourdomain.com/login http://yourdomain.com/logout
以上がLaravel5を使ってログイン登録機能を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。