Laravel10でユーザ登録とログイン機能を持ったページをbreezeを使用したら簡単にできるらしかったので試しました。
初めてlaravelにふれる方でも簡単に作成できると思います。
開発環境
PC:MacBookAir M2
メモリ:16GB
環境の準備
主に必要なものは以下の4つです
- VScode
- Homebrew
- Composer
- MAMP
Homebrewのインストール
以下サイトでコマンドをコピーしてターミナルで実行
https://brew.sh/index_ja
Composerのインストール
以下コマンドをターミナルで実行でインストール
brew install compose
laravelプロジェクトを作成
MAMPの公開設定になっているディレクトリ内の任意のプロジェクトを作成したいディレクトリにターミナル内でcdコマンドを使用して移動します
私の場合は~/workspace/mamp/が公開設定になっているディレクトリなのでここに移動します
cd ~/workspace/mamp/
laravelのプロジェクトを以下のコマンドで作成します(プロジェクト名)の箇所を好きな名前にしてください
composer create-project --prefer-dist laravel/laravel プロジェクト名
作成が完了したら作成したディレクトリにcdコマンドで移動
cd プロジェクト名
laravelのスタートコマンドを実行
php artisan serve
こんな表示になるのでここのURLをコピーしてブラウザで表示
このページが出たらとりあえずプロジェクトは作成できています
Breezeの導入
認証機能を追加するためにBreezeを先程のプロジェクトに追加しましょう。
プロジェクトディレクトリ以下で以下のコマンドを実行
composer require laravel/breeze --dev
Breezのインストールコマンド実行
php artisan breeze:install
ユーザの登録にDBが必要なのでMAMPでDBだけ作成します
MAMPアプリの上の方に飛行機アイコンがあるのでそれをクリック
ページが表示されるのでメニューのTool→phpMyAdminを選択
新規作成を選択
適当なDB名をつけ作成ボタンを押下
VSCodeでプロジェクトを開くと、.envという名前のファイルがあるのでコレを編集します
DB_CONNECTION=mysqlと記載されている箇所を以下のように修正。
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=8889
DB_DATABASE=test_prj #DB名
DB_USERNAME=root #mampの初期値
DB_PASSWORD=root #mampの初期値
.envのキャッシュが残っている場合があるので下記コマンドをそれぞれ実行
php artisan config:clear
php artisan cache:clear
初期ではsessionsテーブルがないので下記のmigrateファイルを作成
php artisan make:migration create_sessions_table --create=sessions
余談:Migrateファイルとは?
migrateファイルとはDBのテーブルの構成とかを記載するファイルです。
※複数人でプロジェクト進めるときとかにコマンド実行するとテーブルが作成されるので便利!
コマンドを実行すると以下のようにファイルが作成されるので編集
このファイルを開いて以下のように書き換えます
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateSessionsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('sessions', function (Blueprint $table) {
$table->string('id')->unique();
$table->foreignId('user_id')->nullable()->constrained();
$table->text('payload');
$table->integer('last_activity');
$table->string('ip_address')->nullable();
$table->string('user_agent')->nullable();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('sessions');
}
}
migrateコマンドを実行し、上記のmigrateファイルの内容をDBに反映
php artisan migrate
余談
ちなみに後で項目が足りないとか、修正したい場合は以下のコマンドで追加用のmigrateファイルを作成して上記のmigrateコマンドを実行すると対応できます
sessionsテーブルに項目追加する場合
add_user_agent_to_sessions_table migrateファイル名
sessions 変更をしたいテーブル名
php artisan make:migration add_user_agent_to_sessions_table --table=sessions
変更内容の書き方
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class AddUserAgentToSessionsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('sessions', function (Blueprint $table) {
$table->string('user_agent')->nullable();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('sessions', function (Blueprint $table) {
$table->dropColumn('user_agent');
});
}
}
変更を保存
php artisan migrate
余談終わり
migrateが完了したらphpMyAdmin上のDBに各テーブルが追加されています
あとはターミナルでlaravelの起動コマンドを実行でOK
php artisan serve
右上にログインと登録ボタンが表示されます
Registerボタンを押したらこんなかんじ
登録もちゃんとできるはずです。
コメント