我正在一个项目中,我正在以这种形式在两个表“用户和注册”中添加数据 public function storeStudent(Request $request){ $created_user = User::create([ 'name' => $request->name, 'email' => $request->email, 'password' => bcrypt($request->password), 'parent_id' => $request->parent_id, 'role_id' => $request->role_id, 'gender'=> $request->gender, 'date_of_birth'=> $request->date_of_birth, 'cnic'=>$request->cnic, 'religion'=>$request->religion, 'skills'=>$request->skills, 'physical'=>$request->physical, 'emergency_name'=>$request->emergency_name, 'phone_no'=>$request->phone_no, 'medical_info'=>$request->medical_info, 'family_dr'=>$request->family_dr, 'address'=>$request->address, ]); Registration::create([ //reg_id is id for registration table 'user_id' => $created_user->id, 'class_id' => $request->class_id, 'section_id' => $request->section_id, ]);现在,我想删除语法不好的数据。我不知道该怎么做才能删除正在尝试的数据public function destroy(Request $request){ $user = User::findOrFail($request->user_id); $user->delete(); $registration=Registration::findOrFail($request->user_id); $registration->delete(); return back();}现“注册表”为Schema::create('registrations', function (Blueprint $table) { $table->increments('reg_id'); $table->integer('user_id')->unsigned(); $table->foreign('user_id')->references('id')->on('users'); $table->integer('class_id')->unsigned(); $table->foreign('class_id')->references('id')->on('classses'); $table->integer('section_id')->unsigned(); $table->foreign('section_id')->references('id')->on('sections'); $table->timestamps();});但这给我错误 Integrity constraint violation: 1451 Cannot delete or update a parent row: a foreign key constraint fails (`jurs1`.`registrations`, CONSTRAINT `registrations_user_id_foreign` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`)) (SQL: delete from `users` where `id` = 10)在这种情况下,请帮助我。
2 回答
牧羊人nacy
TA贡献1862条经验 获得超7个赞
$table->integer('user_id')->unsigned(); $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
使用-> onDelete('cascade')对我有用:)
跃然一笑
TA贡献1826条经验 获得超6个赞
您无法从用户表中删除记录,因为您与注册表(registrations_user_id_foreign
)有关系。为了删除用户记录,您首先必须从注册表中删除该用户的所有记录。您有两种方法:
修改您的注册表的关系
$table->foreign('user_id')->references ('id')->on('users')->onDelete ('cascade');
有了这个,当你做一个
$ user-> delete()
该用户的记录也会从注册表中删除。
或第二种方式:
删除注册记录后删除用户
$user->registrations()->delete(); $user->delete();
- 2 回答
- 0 关注
- 332 浏览
添加回答
举报
0/150
提交
取消