2014-12-07 133 views
0

我正在使用Laravel,並試圖將一些數據種入我的數據庫(phpmyadmin)。我有兩張桌子,用戶和carrinho。他們的關係是Users hasMany Carrinho。在Carrinho表中,我有一個外鍵IDUser。當我嘗試播種Carrinho時,我會犯錯誤。 這裏是我的CarrinhoSeeder文件:Laravel播種數據庫

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

} 

我得到的錯誤是:

[照亮\數據庫\ QueryException] SQLSTATE [23000]:完整性約束違規:1452無法添加或更新子行:外鍵約束失敗(loj acarrinho,約束carrinho_iduser_foreign外鍵(IDUser)參考文獻usersIDUser)ON DELETE CASCADE) (SQL:插入carrinhoIDUser, estado)values(1,1),(2,1))

有人知道我有什麼問題嗎?

+1

您正在引用的行是否存在? – 2014-12-07 04:26:51

回答

1

您需要確保具有引用ID的用戶(1 & 2)已經存在於數據庫中。如果它仍然不起作用,您可以使用以下方法暫時禁用外鍵檢查:

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

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

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