拉拉维尔 5.4。调用错误:php artisan db:seed

Posted

技术标签:

【中文标题】拉拉维尔 5.4。调用错误:php artisan db:seed【英文标题】:Laravel 5.4. Error at call: php artisan db:seed 【发布时间】:2017-08-02 16:10:49 【问题描述】:

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

[照亮\数据库\查询异常] SQLSTATE [HY000]:一般错误:1364 字段“电子邮件”没有 默认值(SQL:插入usersnamepasswordupdated_at, created_ at) 值(用户, $2y$10$YAPLstS9Q/Z7vdL82oefieAo4ZToe4xAiNkLF4nygnniKDhWB njwO, 2017-08-02 16:00:42, 2017-08-02 16:00:42))

[PDO异常] SQLSTATE [HY000]:一般错误:1364 字段“电子邮件”没有 默认值

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

【问题讨论】:

通常电子邮件字段是必需的,并且在 laravel 用户表中应该是唯一的,您没有在查询中使用电子邮件字段。 我该怎么办? 你应该设置电子邮件字段 【参考方案1】:

执行以下步骤:

在您的命令行中执行: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 最后一步转到database/seedrun() 中的文件DatabaseSeeder.php函数类型:

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()函数

希望这会有所帮助。

【讨论】:

以上是关于拉拉维尔 5.4。调用错误:php artisan db:seed的主要内容,如果未能解决你的问题,请参考以下文章

基于关系数据的查询 |拉拉维尔 5.4

使用 switch 后无法使用分页。 - 拉拉维尔

如何测试调用 API 的方法? (拉拉维尔)

脚本 php artisan 优化处理使用 laravel 5.4 返回的 post-update-cmd 事件,错误代码为 1

Macroable.php 第 74 行中的 BadMethodCallException:方法保存不存在。拉拉维尔 5.2

php artisan migrate 不适用于 Laravel 5.4 中的 XAMPP