拉拉维尔 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:插入
users
(name
,password
,updated_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/seed
和run()
中的文件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的主要内容,如果未能解决你的问题,请参考以下文章
脚本 php artisan 优化处理使用 laravel 5.4 返回的 post-update-cmd 事件,错误代码为 1
Macroable.php 第 74 行中的 BadMethodCallException:方法保存不存在。拉拉维尔 5.2