我无法在Laravel 5.2中将数据插入表中

时间:2016-07-14 14:59:11

标签: php mysql laravel

这里是插入数据的控制器方法

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无法添加或更新子行:外键约束失败)

我在部门表中有数据但仍然收到此错误

2 个答案:

答案 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',
];