我正在使用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 a
。carrinho
,CONSTRAINT carrinho_iduser_foreign
外国关键字(IDUser
)参考users
()删除级联)(SQL:插入
IDUser
(carrinho
,IDUser
)值(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/