プロジェクトを作成
プロジェクトファイルを作成する。ここでは「testProject」とする。
composer create-project laravel/laravel testProject
作成したプロジェクトに移動する。
cd testProject
設定ファイルを調整
「.env」設定ファイルを開く。
vi .env
「DB_CONNECTION」項目にてデータベースを設定する。設定項目には「mysql」「postgresql」「sqlite」などが設定できる。
sqliteを設定した場合、「DB_HOST、DB_PORT、DB_DATABASE、DB_USERNAME、DB_PASSWORD」の項目は不要なため、コメントアウトとする。
それ以外のデータベースを設定した場合、それ以降を設定する。
「app.php」設定ファイルを開く。
vi config/app.php
「APP_NAME」項目にてアプリ名を設定。
「APP_URL」項目にてドメイン名を設定。ドメインがない場合はデフォルトのまま。
「timezone」項目にて「Asia/Tokyo」を設定。
「locale」項目にて「ja」を設定。
「fallback_locale」項目にて「ja」を設定。
SQLiteの場合の設定
sqliteのファイルを作成する。
touch database/database.sqlite
テーブルを作成
テーブルを作成する。次のコマンドにて、laravelが初期に設定されているテーブルを作成することができる。
php artisan migrate
必要なプラグインをインストール
composerにて必要なプラグインをインストールする。
composer require laravel/ui
composer require livewire/livewire
artisanにて必要なUIを追加する。
php artisan ui bootstrap --auth
artisanにて、ログイン機能を追加する。これを追加した場合、後に説明するユーザ登録機能「RegisterController」コントローラーは不要となる。
php artisan make:auth
nmpにて必要なプラグインをインストールし、その後にbuildする。
npm install --save-dev vite laravel-vite-plugin
npm run build
コントローラーを作成
コントローラを作成する。ここでは例として、「register」ページ用のコントローラーを作成した。
php artisan make:controller RegisterController --resource --model=Register
ルートを作成
「routes/web.php」を開く。
vi routes/web.php
ルートを設定するため、以下を最後に記述する。
Route::controller(RegisterController::class)->group(function() {
Route::get('/register', 'index');
Route::get('/register/create', 'create');
Route::post('/register', 'store');
});
「register」以下に「index」ファイルを作成するため、以下のファイルを作成し、htmlを記述する。
vi resources/views/register/index.blade.php
接続チェック
テストサーバで接続チェックをする。
php artisan serve --host=localhost --port=8000
キャッシュクリア
うまく動かない場合、キャッシュをクリアを試す。
php artisan route:cache;
日本語化
「config/app.php」内にある3箇所を変更し、日本語設定する。
'locale' => 'ja'
'fallback_locale' => 'ja',
'faker_locale' => 'ja_JP',
会員登録画面、ログイン画面などを日本語化するために、日本語セットを追加する。
追加の際、「resources/lang/ja.json」というファイルを新しく作成し、以下を記述する。
{
"Login": "ログイン",
"login_id": "ログインID",
"Register": "新規登録",
"Forgot Your Password?": "パスワードを忘れた場合",
"Reset Password": "パスワード再設定",
"Send Password Reset Link": "パスワード再設定URLを送信",
"Name": "お名前",
"Email Address": "メールアドレス",
"Password": "パスワード",
"Confirm Password": "パスワード(確認用)",
"Remember Me": "ログイン状態を保存",
"Hello!": "ご利用ありがとうございます。",
"Reset Password Notification": "パスワード再設定のお知らせ",
"You are receiving this email because we received a password reset request for your account.": "あなたのアカウントでパスワード再発行のリクエストがありました。",
"This password reset link will expire in :count minutes.": "再設定URLの有効期限は :count 分です。",
"If you did not request a password reset, no further action is required.": "もしパスワード再発行をリクエストしていない場合、操作は必要ありません。",
"If you’re having trouble clicking the \":actionText\" button, copy and paste the URL below\ninto your web browser: [:actionURL](:actionURL)": "\":actionText\"ボタンを押しても何も起きない場合、以下URLをコピーしてWebブラウザに貼り付けてください。\n[:actionURL](:actionURL)",
"Regards": "よろしくお願いいたします"
}