動作確認用として少数のコメントデータをデータベースに登録する作業を行います.Laravel ではシーダを使って登録する方法があります.まずは,シーダを次のコマンドで生成します.
vagrant@ubuntu2204 CommentAPI $ php artisan make:seeder CommentsTableSeeder ⏎
INFO Seeder [database/seeders/CommentsTableSeeder.php] created successfully.
vagrant@ubuntu2204 CommentAPI $
上のコマンドで次のような雛形が生成されました.
database/seeders/CommentsTableSeeder.php
<?php
namespace Database\Seeders;
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
class CommentsTableSeeder extends Seeder
{
/**
* Run the database seeds.
*/
public function run(): void
{
//
}
}
このファイルを修正して投入するコメントデータを設定します.
database/seeders/CommentsTableSeeder.php
<?php
namespace Database\Seeders;
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
class CommentsTableSeeder extends Seeder
{
/**
* Run the database seeds.
*/
public function run(): void
{
// 一旦中身を削除する
DB::table('comments')->delete();
DB::table('comments')->insert([
'title' => '最初のコメント',
'body' => '最初のコメントです!',
'created_at' => '2023-10-02 10:10:10',
'updated_at' => '2023-10-02 10:10:10'
]);
DB::table('comments')->insert([
'title' => '2つ目',
'body' => '2つ目のコメントです!',
'created_at' => '2023-10-02 10:20:10',
'updated_at' => '2023-10-02 10:20:10'
]);
DB::table('comments')->insert([
'title' => '<三個目>のコメント',
'body' => 'シーダによってテストデータを設定します.',
'created_at' => '2023-10-02 10:30:10',
'updated_at' => '2023-10-02 10:30:10'
]);
}
}
さらに DatabaseSeeder.php も編集して,上の CommentsTableSeeder クラスが実行されるようにします.
database/seeders/DatabaseSeeder.php
<?php
namespace Database\Seeders;
// use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
class DatabaseSeeder extends Seeder
{
/**
* Seed the application's database.
*/
public function run(): void
{
// \App\Models\User::factory(10)->create();
// \App\Models\User::factory()->create([
// 'name' => 'Test User',
// 'email' => 'test@example.com',
// ]);
$this->call(CommentsTableSeeder::class);
}
}
データベースのマイグレーションが実行されていることを確認してからシーダを実行してデータを投入します.
vagrant@ubuntu2204 CommentAPI $ php artisan migrate:status ⏎ Migration name ........................................ Batch / Status 2014_10_12_000000_create_users_table ......................... [1] Ran 2014_10_12_100000_create_password_reset_tokens_table ......... [1] Ran 2019_08_19_000000_create_failed_jobs_table ................... [1] Ran 2019_12_14_000001_create_personal_access_tokens_table ........ [1] Ran 2023_12_16_135311_create_comments_table ...................... [1] Ran vagrant@ubuntu2204 CommentAPI $ php artisan db:seed ⏎ INFO Seeding database. Database\Seeders\CommentsTableSeeder ......................... RUNNING Database\Seeders\CommentsTableSeeder ...................... 39 ms DONE vagrant@ubuntu2204 CommentAPI $