Laravel は非常に人気のある PHP フレームワークで、シンプルさ、使いやすさ、効率性、安定性、安全性、信頼性という利点があり、Web アプリケーションの開発で広く使用されています。 Webアプリケーション開発ではログインや登録機能が欠かせませんが、Laravelを使ってログインや登録機能を実装するにはどうすればよいでしょうか?この記事では詳しく紹介していきます。
1. Laravel のインストール
Laravel を使用して開発する前に、まず Laravel をインストールする必要があります。composer を通じてインストールし、次のコマンドを使用できます。インストールが完了したら、プロジェクトが存在するディレクトリに移動し、次のコマンドを実行して Laravel サービスを開始します:
composer create-project --prefer-dist laravel/laravel project_name
2. ユーザー モデルとデータ テーブルを作成します
Laravel では、次のことが簡単に行えます。 Eloquent ORM を使用してデータベース操作を処理します。ユーザーモデルとデータテーブルを作成する必要があります。
ユーザー モデルの作成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 コントローラーの作成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(); } } }
カスタム コントローラーでは、ユーザー入力データの正当性を検証し、ログインまたは登録プロセス中のエラーを処理するためにバリデーター メソッドが使用されます。
ルーティングの変更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 サイトの他の関連記事を参照してください。