php - 违反完整性约束 : 1452 Cannot add or update a child row: laravel 5 error

标签 php mysql laravel-5

我有一个表员工和表联系人表员工那里有一个名为 contactid 的列,当我在员工中创建数据时,它是联系人表中 id 的外键,我会违反完整性约束,但我会推算正确的 id。

这是我的 Controller 来处理创建员工

 public function create()
{

return view('employmentform');
}

public function handleCreate(Request $request)
{




 $employe = employe::create([
            'fname' => $request->input('first_name'),
            'lname' => $request->input('last_name'),
            'phone' => $request->input('phone_number'),
            'email' => $request->input('email'),
            'houseno' => $request->input('house'),
            'kebele' => $request->input('kebele'),
            'city' => $request->input('city'),
            'state' => $request->input('state'),
            'age' => $request->input('date'),
            'username' => $request->input('user_name'),
            'sex' => $request->input('sex'),
            'password' => Hash::make($request->input('country')),
            'salary' => $request->input('salary'),
            'bankaccount' => $request->input('account'),
            'bankname' => $request->input('bank'),
           'employedate' => getdate(),
           'contactid'=> 5,

        ]);

return Redirect::action('ContactController@create');;

}

我在联系人表中有一行 id 5,但我收到这样的错误

SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`shop1`.`employes`, CONSTRAINT `employes_contactid_foreign` FOREIGN KEY (`contactid`) REFERENCES `contacts` (`id`) ON DELETE CASCADE) (SQL: insert into `employes` (`fname`, `lname`, `phone`, `email`, `houseno`, `kebele`, `city`, `state`, `age`, `username`, `sex`, `password`, `salary`, `bankaccount`, `bankname`, `updated_at`, `created_at`) values (eu, tseu, 0912378909, eualtse@gmail.com, hdikw, sdo, sjad, jaos, 2007-09-09, euael, Female, y$VhU2iJSuXAoXqsan38Gsve5JGtahhNeYpzeJjAYRnTGAEI1TeBCaK, 3000, 9839408, enb, 2015-05-16 13:07:09, 2015-05-16 13:07:09))

我的表架构

Schema::table('employes', function($table)
{
   $table->integer('contactid')->unsigned();
$table->foreign('contactid')->references('id')->on('contacts'); 
});

最佳答案

您正在为 contactid 输入值 5,它是您的员工表中的外键,并且是联系人表中的主键作为 id。现在,无论您在联系人表中是否有 id 5,您都将在员工表中输入一个常量值。通过查看错误,很明显您在联系人表中没有 id 为 5 的条目。

关于php - 违反完整性约束 : 1452 Cannot add or update a child row: laravel 5 error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30276136/

相关文章:

php - Laravel 5 : How to create a custom attribute for a collection, 然后用它排序

php - 具有一对多关系的多个表(Laravel)

php - Laravel 推送通知

php - 要求/包含到变量中

javascript - 使用 Mysql UNIX_TIMESTAMP() 到 JAVASCRIPT Date.UTC() 获得不同的结果

mysql - 杀死 Mysql 中的休眠进程?

php - 如何禁止同一个人像两个不同的人一样玩我的 RPG 游戏?

php - Laravel 和 Dropbox WebAuth : "Missing CSRF token in session"

php - 计算列宽

javascript - 仅使用来自 Cordova 应用程序的 URL 将图像发布到 PHP