CRUD機能を【Laravel8系】で作ってみる。 ダミーデータ入力

【Laravel8系をインストールしてみた】ログインできるまで

↑の続きです。

前回ログインまでできたんで、今回はテーブルを作ってその中にダミーデータを入れてみます。

migration

まずはテーブルを作っていきます。

php artisan make:model Student -m
Code language: CSS (css)

次にmigrationファイルの作成。

database/migrations/2021_06_29_060856_create_students_table.php

<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class CreateStudentsTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('students', function (Blueprint $table) {
            $table->id();
            $table->string('firstname');
            $table->string('lastname');
            $table->string('email');
            $table->string('phone');
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('students');
    }
}
Code language: HTML, XML (xml)
app/Models/Student.php

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Student extends Model
{
    use HasFactory;

    protected $table = "students";
    protected $fillable = [
        'firstname',
        'lastname',
        'email',
        'phone',
    ];

}
Code language: HTML, XML (xml)

そしてマイグレーションをします!

php artisan migrate

これでテーブルが作成できたかと思うので、一度phpmyadminに確認しにいきましょう。

check phpmyadmin table

このようにテーブルが確認できたらOKです!

ではこのテーブルにダミーデータを入れていきます。

ダミーデータ入力

今回はシーダーを使ってダミーデータを入れていこうと思います。

シーダを使うことで仮のデータを入力することができます。

自分で決めたデータも入れることができるし、機械的にデータを指定した数分入力することもできます。

こちらの記事が参考になるかと思います。
Laravel8で完成されたModelFactoryの使い方

ではダミーデータを入れていきます。

Factoryの作成

php artisan make:factory StudentFactory
Code language: CSS (css)

Factoryに記入

database/factories/StudentFactory.php

<?php

namespace Database\Factories;

use App\Models\Student;
use Illuminate\Database\Eloquent\Factories\Factory;

class StudentFactory extends Factory
{
    /**
     * The name of the factory's corresponding model.
     *
     * @var string
     */
    protected $model = Student::class;

    /**
     * Define the model's default state.
     *
     * @return array
     */
    public function definition()
    {
        return [
            'firstname' => $this->faker->firstname,
            'lastname' => $this->faker->lastname,
            'email' => $this->faker->email,
            'phone' => $this->faker->phoneNumber,
        ];
    }
}
Code language: HTML, XML (xml)

Factoryを動かすようにシーダを書く。

database/seeders/DatabaseSeeder.php

<?php

namespace Database\Seeders;

use Illuminate\Database\Seeder;

class DatabaseSeeder extends Seeder
{
    /**
     * Seed the application's database.
     *
     * @return void
     */
    public function run()
    {
        // \App\Models\User::factory(10)->create();
        //10人分のStudentのデータを入れる
        \App\Models\Student::factory(10)->create();
    }
}
Code language: HTML, XML (xml)

このままだとダミーデータが英語になってしまうので、日本語のダミーデータが入力されるように設定変更。

config/app.php

'faker_locale' => 'ja_JP',
Code language: PHP (php)

そしてダミーデータを入れるコマンドを叩きます。

php artisan db:seed
Code language: CSS (css)

はい、phpmyadminを確認しにいきます 。

check dummy data

このようにデータが入っていればOK!

ダミーデータを入れることができました。

まとめ

ダミーデータを入れることができるのってすごい便利ですよね。

便利なライブラリだなあー

参考ブログ: Laravel8で掲示板を作成する②(一覧画面を作成)

2 COMMENTS

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA