我正在使用Laravel,并且正在尝试将一些数据植入我的数据库(phpmyadmin)。我有两个表,用户和carrinho。他们的关系是Users hasMany Carrinho。在Carrinho表中,我有一个外键IDUser。尝试播种Carrinho时出现错误。
这是我的CarrinhoSeeder文件:

<?php

class CarrinhoTableSeeder extends Seeder {

public function run()
{
    DB::table('carrinho')->delete();

    $carrinho = array(
        array(
            'IDUser' => 1,
            'estado'      => true,
        ),
        array(
            'IDUser' => 2,
            'estado'      => true,
        )
    );

    DB::table('carrinho')->insert( $carrinho );
}

}


我得到的错误是:


  [Illuminate \ Database \ QueryException]
    SQLSTATE [23000]:违反完整性约束:1452无法添加或更新子行:外键约束失败(loj acarrinho,CONSTRAINT carrinho_iduser_foreign外国关键字(IDUser)参考users()删除级联)
    (SQL:插入IDUsercarrinhoIDUser)值(1、1),(2、1))


有人知道我错了吗?

最佳答案

您需要确保具有引用ID(1和2)的用户已经存在于数据库中。如果仍然无法使用,您可以使用以下方法暂时禁用外键检查:

DB::statement('SET FOREIGN_KEY_CHECKS=0;');

DB::table('carrinho')->insert( $carrinho );

DB::statement('SET FOREIGN_KEY_CHECKS=1;');

关于php - Laravel种子数据库,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27338559/

10-09 08:12