はじめに
このドキュメントは、Laravel初心者の方が、ユーザー登録、ログインを必要とするサービスを作るために、Laravelから標準的に提供されているパッケージを用いてサクッと実装することをゴールに定め書いています。
ゴールの具体的な状態
- 以下の機能を提供できる
- 会員登録
- ログイン/ログアウト
- パスワードリマインダー
- 上記機能における各種メッセージが日本語で提供される
インストールするソフトウェア・パッケージ
今回は、laravel/ui
を導入するのみです。最新のバージョンは2.xですが、今回インストールしたLaravelのバージョンは6.xなので、1.xを指定してインストールします。
導入手順
vesselを用いた環境で作業を進めます。
1. laravel/ui
のインストール
./vessel comp require laravel/ui "^1.0" --dev
composer require laravel/ui "^1.0" --dev
2. 認証機能のセットアップ
# 認証用のスキャフォールド生成
./vessel art ui vue --auth
php artisan ui vue --auth
# マイグレーション
./vessel art migrate
php artisan migrate
3. ローカライズ設定
# タイムゾーンを以下の値に変更
'timezone' => 'Asia/Tokyo',
# ロケールを以下の値に変更
'locale' => 'ja',
# fakerロケールを以下の値に変更(テストデータを作るときに必須の設定)
'faker_locale' => 'ja_JP',
4. 言語ファイルの追加
プロジェクトのルートディレクトリに移動して以下を実行します。成功すれば、 resources/lang/ja
というディレクトリが新たに作成されています。
php -r "copy('https://readouble.com/laravel/6.x/ja/install-ja-lang-files.php', 'install-ja-lang.php');"
php -f install-ja-lang.php
php -r "unlink('install-ja-lang.php');"
7. テストデータのセットアップ
下記のファイルのコメントアウトを解除し、UserTableSeederを作リます。これにより、認証用のユーザーテーブルに、テストデータを作成することができるようになります。
public function run()
{
// $this->call(UsersTableSeeder::class);
$this->call(UsersTableSeeder::class);
}
以下は内容をそのままコピペします。
<?php
use Illuminate\Database\Seeder;
class UsersTableSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
factory(App\User::class, 30)->create();
}
}
新しいクラスを追加したのでdump-autoloadを実行する
./vessel comp dump-autoload
7. テストデータを作成する
seedコマンドで、usersテーブルにテストデータを作成します。
./vessel art db:seed
# mysqlコンテナにアクセスする
./vessel mysql
# usersテーブルをカウントする(30件入っているはず)
select count(*) from users;
8. 画面を確認する
localhostにアクセスするとトップページに認証用のメニューが追加されています。
また、そのメニューからログイン画面に遷移し、適当な文字列を入力してログインを試みると、日本語でエラーメッセージが出力されます。