Laravel:完整性约束违规:1062重复条目'jon@doe.com'键'users_email_unique'

Posted

技术标签:

【中文标题】Laravel:完整性约束违规:1062重复条目\'jon@doe.com\'键\'users_email_unique\'【英文标题】:Laravel: Integrity constraint violation: 1062 Duplicate entry 'jon@doe.com' for key 'users_email_unique'Laravel:完整性约束违规:1062重复条目'jon@doe.com'键'users_email_unique' 【发布时间】:2015-06-18 16:39:38 【问题描述】:

我在将实际数据播种到我的数据库时遇到了一些问题。我收到错误消息:

"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),
]);

我什至不运行 UserTableSeeder,但它似乎再次触发了 jon@doe.com。

有什么线索吗?

这是我的 DatabaseSeeder:

<?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');
    


这是我的 UserTableSeeder,上面注释掉了

<?php

use Illuminate\Database\Seeder;

// composer require laracasts/testdummy
use Laracasts\TestDummy\Factory as TestDummy;

class UserTableSeeder extends Seeder 

    public function run()
    
        TestDummy::times(1)->create('App\User');
    


请指教。

【问题讨论】:

你的代码看起来有点不对劲。给定的代码有 doe.com,而错误是关于 doe.de。 【参考方案1】:

解决方案很明显,只需使用 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);

【讨论】:

感谢评论,但这对我没有帮助,因为我得到的错误是由于“重复”的电子邮件地址。我的迁移要求电子邮件应该是唯一的。尽管如此,这也不能解决问题,因为我最初的问题是,对于每个创建的订单,都会创建一个新用户,这很奇怪......无论如何都要感谢您的回复。

以上是关于Laravel:完整性约束违规:1062重复条目'jon@doe.com'键'users_email_unique'的主要内容,如果未能解决你的问题,请参考以下文章

如何修复完整性约束违规:1062 键“PRIMARY:Laravel Pivot Table”的重复条目“1-1”

SQLSTATE [23000]:完整性约束违规:1062 键 'tbl_item_item_ID_UNIQUE' 的重复条目 '25'

SQLSTATE [23000]:完整性约束违规:1062 键“users_melli_unique”的重复条目“0430142821”

违反完整性约束:1062空数据库LARAVEL上的重复条目

在 symfony2 中处理 1062 重复条目异常

“违反完整性约束:1062 重复条目”-但没有重复行