这里是插入数据的控制器方法
public function addTeacher(Request $request)
{
$this->validate($request, [
'teacher_id' => 'required|min:1',
'name' => 'required|min:2',
'address' => 'required|min:3',
'cnic' => 'required|min:13',
'phone_no' => 'required|min:11',
'email' => 'required|email|unique:teachers',
'password' => 'required|confirmed|min:6',
'dept_id' => 'required|min:1'
]);
Teacher::create($request->except('_token'));
return redirect('admin/showTeachers');
}
这是Model
class Teacher extends Authenticatable
{
protected $primaryKey = 'teacher_id';
public $incrementing = false;
protected $fillable = [
'teacher_id',
'name',
'address',
'cnic',
'phone_no',
'email',
'password',
'dept_id',
];
}
我收到此错误(SQLSTATE [23000]:完整性约束违规:1452无法添加或更新子行:外键约束失败)
我在部门表中有数据但仍然收到此错误
答案 0 :(得分:1)
您获得该异常的原因是因为您在具有dep_id值的表教师上插入记录。桌面教师没有dept_id。
表教师依赖于表部门。因此,请确保在表教师上插入记录时,dept_id的值已经存在于父表部门中。
答案 1 :(得分:1)
我出现同样的错误,请确保您的表单提交了必要的表格列名 你有没有在模特中命名你的桌子?我认为这是一个错误。让它看起来像这样。
protected $table = 'your_table_name';
protected $fillable = [
'teacher_id',
'name',
'address',
'cnic',
'phone_no',
'email',
'password',
'dept_id',
];