背景
LaravelでSeeder実行時に少々詰まったので共有します。
環境
Laravel Framework 8.15.0
現象
Seederファイルを用意した状態でSeederを実行するとエラーが発生する
$ php artisan db:seed
Seeding: Database\Seeders\FutsalsTableSeeder
Error
Class 'Database\Seeders\Datetime' not found
at database/seeders/FutsalsTableSeeder.php:22
18▕ [
19▕ 'name' => 'futsal 1',
20▕ 'place' => 'tokyo',
21▕ 'url' => 'xxx',
➜ 22▕ 'created_at' => new Datetime(),
23▕ 'updated_at' => new Datetime()
24▕ ],
25▕ [
26▕ 'name' => 'futsal 2',
原因
Datetimeに関して、use宣言をしていないため
解決策
use DateTime
を追記すればOKです。
HobeTablesSeeder.php
<?php
namespace Database\Seeders;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
use DateTime; // ←これを追加
class FutsalsTableSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
// 省略
}
}