2021年4月8日木曜日

PHP:Laravel-02

1. Auth認証ページの表示を日本語化

/config/app.phpの修正

// 'timezone' => 'UTC', 'timezone' => 'Asia/Tokyo', //'locale' => 'en', 'locale' => 'ja', // 'faker_locale' => 'en_US', 'faker_locale' => 'ja_JP',

resources/lang/ja.json

{
"Login": "ログイン", "Register": "新規登録", "Forgot Your Password?": "パスワードを忘れてしまいましたか?", "Reset Password": "パスワード再設定", "Send Password Reset Link": "パスワード再設定URLを送信", "Name": "お名前", "E-Mail 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": "よろしくお願いいたします", "Home": "ホーム", "Logout": "ログアウト", "Dashboard": "お知らせ", "You are logged in!":"ログインしました!" }

2.エラーメッセージの日本語化

>php -r "copy('https://readouble.com/laravel/8.x/ja/install-ja-lang-files.php',
    'install-ja-lang.php');" >php -f install-ja-lang.php >php -r "unlink('install-ja-lang.php');"

下記により、/resources/lang/jaに日本語化された4ファイルができる

3.DBとの接続設定

.envのDB接続情報の修正

DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=データベース名 DB_USERNAME=ユーザ名 DB_PASSWORD=パスワード

4.テーブルなどの作成

■migration作成

migrationでタスクテーブルを作成します。


>php artisan make:migration create_tasks_table

■生成されたmigrationのupメソッドの中をこのように書き換え

create_tasks_table.phpの修正

Schema::create('tasks', function (Blueprint $table) {

    $table->bigIncrements('id');

    $table->string('title', 100);

    $table->string('content', 100);

    $table->string('person_in_charge', 100);

    $table->timestamps();

});

■モデル作成

次に、タスクテーブルに対応するタスクモデルを作ります。


>php artisan make:model Task

生成されたモデルファイルに、$fillable のみ追記しておきます。

app/Models/Task.php

<?php
namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class Task extends Model { protected $fillable = [ 'title', 'content', 'person_in_charge', ]; }

■seeder作成

テストデータを自動生成するためのseederを作成します。

まずは下記コマンドでseederファイルを生成。


>php artisan make:model Task

生成されたseederファイルのrunメソッドを修正します。

database/seeds/TasksTableSeeder.php

10件のテストデータを同時に作成できます

<?php
namespace Database\Seeders; use App\Models\Task; use Illuminate\Database\Seeder; class TasksTableSeeder extends Seeder { /** * Run the database seeds. * * @return void */ public function run() { for ($i = 1; $i <= 10; $i++) { Task::create([ 'title' => 'title' . $i, 'content' => 'content' . $i, 'person_in_charge' => 'person_in_charge' . $i, ]); } } }

このseederを実行するためにDatabaseSeederファイルも修正します。

class DatabaseSeeder extends Seeder
{
    /**
     * Seed the application's database.
     *
     * @return void
     */
    public function run()
    {
        // \App\Models\User::factory(10)->create();
        $this->call(TasksTableSeeder::class);
    }
}

■テーブルなどの出力。


>php artisan migrate --seed

これでプロジェクトに必要なテーブルなどが作成できます