2016-07-14 61 views
0

這裏是用於插入數據的控制器方法我無法在Laravel將數據插入到表5.2

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

這裏是模型

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無法添加或更新子行:外鍵約束失敗)

我有部門表中的數據但仍然出現此錯誤

回答

1

你得到這個異常的原因是因爲你在表格教師上插入了一個記錄,它具有dep_id的值。表教師不存在dept_id。

表教師依賴於表部門。因此,請確保在表教師上插入記錄時,父表部門上已存在dept_id的值。

+0

我在部門表中,記錄下的dept_id = 1,我如果你想我可以顯示顯示你的屏幕截圖 –

+0

輸入相同的值也依賴於部門表,當我插入課程表與相同dept_id我不能得到任何錯誤 –

+0

還有一兩件事,我有另一個表課程,是taecher形式 –

1

我走了同樣的錯誤,請確保您的表單提交必要的表列名稱。
您是否在模型中命名了您的表格?我認爲它是一個錯誤。使它看起來像這樣。

protected $table = 'your_table_name'; 
protected $fillable = [ 
    'teacher_id', 
    'name', 
    'address', 
    'cnic', 
    'phone_no', 
    'email', 
    'password', 
    'dept_id', 
]; 
相關問題