首页 文章

Laravel 5.4 . 通话时出错:php artisan db:seed

提问于
浏览
1

我在Laravel 5.4中调用命令: php artisan db:seed . 控制台打印我这个错误:

[Illuminate \ Database \ QueryException] SQLSTATE [HY000]:常规错误:1364字段'email'没有默认值(SQL:插入用户(名称,密码,updated_at,created_ at)值(用户,$ 2) y $ 10 $ YAPLstS9Q / Z7vdL82oefieAo4ZToe4xAiNkLF4nygnniKDhWB njwO,2017-08-02 16:00:42,2017-08-02 16:00:42))[PDOException] SQLSTATE [HY000]:一般错误:1364字段'email'不包含有一个默认值

我尝试在 database.php 文件中设置: 'strict' => false ,但这不起作用 . 何解决这个问题?

1 回答

  • 0

    请执行以下步骤:

    在命令行中执行: php artisan make:seeder UsersTableSeeder . 您可以在 database\seeds 文件夹中看到正在创建的同一文件现在转到文件 UsersTableSeeder.php 您将看到 run() 方法,编写如下代码:

    public function run()
    {
        DB::table('users')->insert([
            'name' => str_random(10),
            'email' => str_random(10).'@gmail.com',
            'password' => bcrypt('secret'),
        ]);
    }
    

    在此之后你可以使用: php artisan db:seed 为数据库播种,或者你可以这样做: php artisan db:seed --class=UsersTableSeeder 只播种你的 UsersTableSeeder 最后一步转到文件 DatabaseSeeder.phpdatabase/seedrun() 函数中输入:

    public function run()
    {
        $this->call(UsersTableSeeder::class);
    }
    

    或者您不需要创建 UsersTableSeeder ,您只需复制即可

    DB::table('users')->insert([
        'name' => str_random(10),
        'email' => str_random(10).'@gmail.com',
        'password' => bcrypt('secret'),
    ]);
    

    DatabaseSeeder.php 文件中的 run() 函数

    希望这可以帮助 .

相关问题