2016-07-14 3 views
0

은 (SQLSTATE [23000] 여기 내가 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', 
    ]; 
    } 

내가이 오류를 얻고있다 삽입 데이터 컨트롤러 방법 제약 위반 : 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', 
]; 
관련 문제