2016-07-14 6 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]: Integrity ограничение ограничений: 1452 Невозможно добавить или обновить дочернюю строку: сбой внешнего ключа)

У меня есть данные в таблице отделов, но все еще получаю эту ошибку

ответ

1

Причина, по которой вы получаете это исключение, заключается в том, что вы вставляете запись в учителя таблицы, которая имеет значение dep_id. dept_id нет на учителях таблицы.

Учителя таблиц зависят от отделов стола. Поэтому убедитесь, что при вставке записей в учителя таблиц значения для dept_id уже существуют в родительских табличных отделах.

+0

У меня есть запись в отделах таблицы, где dept_id = 1, и я ввести такое же значение в taecher форме –

+0

, если вы хотите, я могу показать показать вам снимки экрана –

+0

и еще одну вещь, у меня есть еще таблица курсов, является также зависит от таблицы отдела, и когда я вставляю в таблицу курсов с тем же dept_id, я не могу получить никакой ошибки –

1

Идём ту же ошибку, убедитесь, что ваша форма отправляет необходимые имена столбцов таблицы.
Вы написали свой номер в Модели? Я думаю, что это ошибка. Сделайте это так.

protected $table = 'your_table_name'; 
protected $fillable = [ 
    'teacher_id', 
    'name', 
    'address', 
    'cnic', 
    'phone_no', 
    'email', 
    'password', 
    'dept_id', 
]; 
Смежные вопросы