laravel login module

laravelでログインを実装する時のメモ

laravelで本格的にログイン実装をする必要が出てきたので自分用にメモ

プロジェクトの作成

バージョンは最近10が出たりしてるけど、9でやる

comopser createproject laravel/laravel "PROJECT NAME" 9.x.x

breezeのインストール

laravelのlogin用のモジュールbreezeをインストールする

composer require laravel/breeze
artisan install breeze

ここまででログイン機能は一通り入る。

DBの設定

mysqlを利用するのでdockerのmysqlの初期設定を追加 default-character-setなどを追記

[mysql]
default-character-set=utf8mb4

[mysqld]
sql-mode="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"
character-set-server=utf8mb4
collation-server=utf8mb4_bin
#default-authentication-plugin=mysql_native_password

.envの設定

laravelの.envのmysqlパスワードを入れる

DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=****
DB_USERNAME=****
DB_PASSWORD=****

migrationのメモ

migrationの作成方法

artisan make:migration NAME

テーブルの作成

YYYY_MM_DD_**_create_roles_table.phpというファイルができるので、そこに追加したいカラムがあれば追記する

artisan make:migration craete_roles_table

既存テーブルにカラムの追加をする

これもartisanでやる。そこに追加したいカラムがあれば追記する 追加したカラムをforeignを使って紐づける

artisan make:migration add_roleid_to_users
<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

return new class extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::table('users', function (Blueprint $table) {
            $table->unsignedBigInteger('role_id')->after('id');
            $table->foreign('role_id')->references('id')->on('roles');
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::table('users', function (Blueprint $table) {
            //
            $table->dropForeign('users_role_id_foreign');
            $table->dropColumn('role_id');
        });
    }
};

Seederの作成

データベースにテストデータを流し込んだりする

artisan make:seeder ****Seeder

作成したseederを動作させる場合はDatabaseSeederに記述する

namespace Database\Seeders;

// use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;

class DatabaseSeeder extends Seeder
{
    /**
     * Seed the application's database.
     *
     * @return void
     */
    public function run()
    {
        #こんな形で記入
        $this->call([RolesSeeder::class]);
    }
}

とりあえずここまで。 あとはメール機能周りをまとめたい。

参考

laravelのチートシート

connvoi's Picture

About connvoi

肉とビールと料理と写真とゲーム たまに技術 python / Solr / PHP / ansible

アマゾンセール情報サイト アマセール管理人

Jp, Tokyo https://connvoi.com