第26回 Laravelでテーブルとデータの作成

公開日:2021-04-12 更新日:2021-04-12

1. 概要

Laravelでテーブルとデータを作成する方法について説明しています。

環境は前回と同じものを使います。

参考:Laravel の公式サイト

2. 動画



3. テーブルの作成


3. 1 マイグレーションの作成

php artisan make:migration マイグレーション名

(例)
php artisan make:migration create_articles_table

出力先 : database/migrations/

3. 2 マイグレーションの実装

database/migrations/ 配下に出力されたファイルを開き、up() にテーブルの定義をします。
public function up()
{
    Schema::create('articles', function (Blueprint $table) {
        $table->id();
		$table->string('title');
		$table->text('body');
        $table->timestamps();
    });
}

3. 3 マイグレーションの実行

php artisan migrate

マイグレーションを修正して、マイグレーションを再実行したい場合には、以下のコマンドを実行します。
【注意】テーブルが再作成されるため、データは全て削除されます。
php artisan migrate:refresh

4. データの作成


4.1 シーダーの作成

php artisan make:seeder シーダー名

(例)
php artisan make:seeder ArticlesTableSeeder

出力先:database/seeders

4.2 シーダーの実装

public function run()
{
    $faker = \Faker\Factory::create();
    for ($i = 1; $i<= 10; $i++) {
        \DB::table('articles')->insert([
            'title' => $faker->word(),
            'body' => $faker->text(),
        ]);
    }
}

4.3 DatabaseSeeder.php の修正

database/seeders/DatabaseSeeder.php から作成したシーダーを呼び出すようにします。
public function run()
{
    $this->call(ArticlesTableSeeder::class);
}

5. 複数形の確認

Laravel では、モデルを単数形、テーブル名を複数形にする命名規則があります。
例外もあるため、事前に Str::plural() を使って確認しておくと良いです。

use Illuminate\Support\Str;

var_dump(Str::plural('article')); // articles
var_dump(Str::plural('family'));  // families
var_dump(Str::plural('people'));  // people
var_dump(Str::plural('data'));    // data