Php Laravel:完整性约束冲突:1062个重复条目';jon@doe.com';对于键';用户的电子邮件独一无二';
我在将实际数据植入数据库时遇到一些问题。我收到错误消息:Php Laravel:完整性约束冲突:1062个重复条目';jon@doe.com';对于键';用户的电子邮件独一无二';,php,html,laravel,Php,Html,Laravel,我在将实际数据植入数据库时遇到一些问题。我收到错误消息: "Integrity constraint violation: 1062 Duplicate entry 'jon@doe.de' for key 'users_email_unique'" 这就是我的工厂的样子: $factory('App\User', [ 'name' => 'Jon Doe', 'email' => 'jon@doe.com', 'password' =>
"Integrity constraint violation: 1062 Duplicate entry 'jon@doe.de' for key 'users_email_unique'"
这就是我的工厂的样子:
$factory('App\User', [
'name' => 'Jon Doe',
'email' => 'jon@doe.com',
'password' => password_hash('123456', PASSWORD_DEFAULT),
]);
$factory('App\User', [
'name' => 'Jane Doe',
'email' => 'jane@doe.com',
'password' => password_hash('123456', PASSWORD_DEFAph ULT),
]);
我甚至没有运行usertableeeder,但它似乎触发了jon@doe.com再说一遍
有什么线索吗
这是我的数据库播种器:
<?php
use Illuminate\Database\Seeder;
use Illuminate\Database\Eloquent\Model;
class DatabaseSeeder extends Seeder {
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
Model::unguard();
// $this->call('UserTableSeeder');
$this->call('ClientTableSeeder');
$this->call('OrderTableSeeder');
$this->call('FileTableSeeder');
}
}
解决方案显而易见,只需使用faker在工厂中生成虚拟数据即可
$factory('App\User', [
'name' => $faker->name,
'email' => $faker->email,
'password' => password_hash('123456', PASSWORD_DEFAULT),
]))
因为您有重复的电子邮件地址,并且在迁移中设置了唯一的规则
如果要覆盖虚拟数据,可以执行以下操作
$overwrite = ['name' => 'Jon Doe','email' =>'jondoe.email.com'];
TestDummy::times(1)->create('App\User',$overwrite);
你的代码看起来有点不对劲。给定的代码有doe.com,而注释的错误是关于doe.de.Thx的,但这对我没有帮助,因为我得到的错误是由于“重复”的电子邮件地址造成的。我的迁移要求电子邮件应该是唯一的。尽管如此,这也不能解决问题,因为我最初的问题是,对于每个创建的订单,都会创建一个新用户,这已经够奇怪了。。。谢谢你的回复。
$overwrite = ['name' => 'Jon Doe','email' =>'jondoe.email.com'];
TestDummy::times(1)->create('App\User',$overwrite);