Help us understand the problem. What is going on with this article?

LaravelのSeeder実行時に「Class 'Database\Seeders\Datetime' not found」エラーが出たときの対処法

背景

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()
    {
   // 省略
    }
}

参考
https://stackoverflow.com/questions/52074184/laravel-error-class-app-http-controllers-datetime-not-found

memomaruRey
■大手企業でエンジニア歴3年の28歳 ■プログラミング/英語について毎日発信 ■大学時代にC言語挫折→大手でエンジニアとして就職 ■20歳でTOEIC550点→留学なし/独学でTOEIC930点取得 ■仕事で英語を使っているためTOEIC以上の英語力あり ■シェアハウスで家賃2万円(実質)→経験にお金を投資
https://memomaru.life
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away