Laravel がログインおよび登録機能を実装する方法を説明する例

PHPz
リリース: 2023-04-12 09:26:04
オリジナル
2219 人が閲覧しました

Laravel は非常に人気のある PHP フレームワークで、シンプルさ、使いやすさ、効率性、安定性、安全性、信頼性という利点があり、Web アプリケーションの開発で広く使用されています。 Webアプリケーション開発ではログインや登録機能が欠かせませんが、Laravelを使ってログインや登録機能を実装するにはどうすればよいでしょうか?この記事では詳しく紹介していきます。

1. Laravel のインストール

Laravel を使用して開発する前に、まず Laravel をインストールする必要があります。composer を通じてインストールし、次のコマンドを使用できます。インストールが完了したら、プロジェクトが存在するディレクトリに移動し、次のコマンドを実行して Laravel サービスを開始します:

composer create-project --prefer-dist laravel/laravel project_name
ログイン後にコピー

2. ユーザー モデルとデータ テーブルを作成します

Laravel では、次のことが簡単に行えます。 Eloquent ORM を使用してデータベース操作を処理します。ユーザーモデルとデータテーブルを作成する必要があります。

ユーザー モデルの作成
  1. Laravel でモデルを作成すると非常に便利です。コマンド ラインで次のコマンドを使用するだけです:
php artisan serve
ログイン後にコピー

アプリ内 ユーザーモデルとなる User.php ファイルがディレクトリに生成されます。 Laravel はデフォルトでテーブル名をモデルの複数形に設定するため、次のように User モデルにテーブル名を設定する必要があります:

php artisan make:model User
ログイン後にコピー

2. ユーザー データ テーブルを作成します

データベース ユーザー テーブルに作成し、次のコマンドを実行して移行を作成します。

class User extends Model
{
    protected $table = 'users';
}
ログイン後にコピー

次に示すように、移行ファイルがデータベース/移行ディレクトリに生成されます。

php artisan make:migration create_users_table --create=users
ログイン後にコピー

次のコマンドを実行します。データテーブルを生成するコマンド:

class CreateUsersTable extends Migration
{
    public function up()
    {
        Schema::create('users', function (Blueprint $table) {
            $table->increments('id');
            $table->string('name');
            $table->string('email')->unique();
            $table->timestamp('email_verified_at')->nullable();
            $table->string('password');
            $table->rememberToken();
            $table->timestamps();
        });
    }

    public function down()
    {
        Schema::dropIfExists('users');
    }
}
ログイン後にコピー

3. laravel/ui パッケージを使用してユーザー認証を作成する

Laravel は、ユーザー認証システムの作成に使用できる laravel/ui パッケージを提供します。まず、次のコマンドを使用して、laravel/ui パッケージをインストールします。

php artisan migrate
ログイン後にコピー

インストールが完了したら、次のコマンドを実行して、ユーザー認証システムを作成します。

composer require laravel/ui
ログイン後にコピー

このコマンドの機能は、 Vue.js フロントエンド フレームワークのデフォルトのログイン ビューと登録ビューを作成します。実行が完了すると、resources/views ディレクトリに auth フォルダーがあり、auth/login.blade.php と auth/register.blade.php の 2 つのビュー ファイルが含まれていることがわかります。

4. ルーティングの設定

Laravel では、ルーティングは URL をコントローラー メソッドにバインドするメカニズムです。ログイン ページと登録ページにアクセスできるようにルーティングを設定する必要があります。

routes/web.php ファイルに、次のルート定義を追加します。

php artisan ui vue --auth
ログイン後にコピー

これらのルートは、Laravel のデフォルトの Auth\LoginController と Auth\RegisterController のメソッドをそれぞれ呼び出します。

5. カスタマイズされたユーザー認証

実際のアプリケーションでは、多くの場合、ビジネス ニーズに合わせてユーザー認証をカスタマイズする必要があります。ユーザー認証をカスタマイズする手順は次のとおりです。

LoginController および RegisterController コントローラーの作成
  1. LoginController および RegisterController コントロールを app/Http/Controllers/Auth に作成する必要があります。
Route::get('/login', 'Auth\LoginController@showLoginForm')->name('login');
Route::post('/login', 'Auth\LoginController@login');
Route::get('/register', 'Auth\RegisterController@showRegistrationForm')->name('register');
Route::post('/register', 'Auth\RegisterController@register');
ログイン後にコピー
class LoginController extends Controller
{
    protected function validator(array $data)
    {
        return Validator::make($data, [
            'email' => 'required|email',
            'password' => 'required|min:6'
        ]);
    }

    public function showLoginForm()
    {
        return view('auth.login');
    }

    public function login(Request $request)
    {
        $validator = $this->validator($request->all());
        if ($validator->fails()) {
            return redirect('/login')
                        ->withErrors($validator)
                        ->withInput();
        }

        if (Auth::attempt(['email' => $request->email, 'password' => $request->password])) {
            return redirect('/');
        } else {
            return redirect('/login')
                        ->withErrors(['email' => '邮箱或密码错误'])
                        ->withInput();
        }
    }
}
ログイン後にコピー

カスタム コントローラーでは、ユーザー入力データの正当性を検証し、ログインまたは登録プロセス中のエラーを処理するためにバリデーター メソッドが使用されます。

ルーティングの変更
  1. 元のルーティングを次のコードに変更します:
class RegisterController extends Controller
{
    protected function validator(array $data)
    {
        return Validator::make($data, [
            'name' => 'required|max:255',
            'email' => 'required|email|unique:users',
            'password' => 'required|min:6|confirmed',
        ]);
    }

    public function showRegistrationForm()
    {
        return view('auth.register');
    }

    public function register(Request $request)
    {
        $validator = $this->validator($request->all());
        if ($validator->fails()) {
            return redirect('/register')
                        ->withErrors($validator)
                        ->withInput();
        }

        $user = User::create([
            'name' => $request['name'],
            'email' => $request['email'],
            'password' => bcrypt($request['password']),
        ]);

        Auth::login($user);
        
        return redirect('/');
    }
}
ログイン後にコピー

このようにして、コードは独自のコードに従って変更され、記述されます。必要な場合は、ログインして登録するだけです。

6. 概要

この記事では、ユーザーモデルとデータテーブルの作成、laravel/ui パッケージを使用したデフォルトの作成など、Laravel を使用してユーザーのログインと登録を実装する手順を詳しく紹介します。ユーザー認証システム、ルーティングとカスタム ユーザー認証の設定。基本版でもカスタマイズ版でもLaravelを使うと非常に便利で、開発効率も大幅に向上します。 PHP 開発者であれば、Laravel を試してみるとよいでしょう。

以上がLaravel がログインおよび登録機能を実装する方法を説明する例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート