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]);
}
}
とりあえずここまで。 あとはメール機能周りをまとめたい。