Здесь сценарий, у меня есть 3 модели/таблицы: 1. Teacher
2. Course
3. Course Assign to Teacher
Как обновить связанную модель в Laravel красноречивого
В Teacher
модели/таблицах Есть две колонок названный: credit_taken
и remaining_credit
(default 0
) и в модели Course
есть столбец course_credit
.
Так вот проблема: в модели/таблицы Course Assign to Teacher
когда Teacher
принимает Course
значение этого столбца должно быть рассчитано следующим образом: remaining_credit = credit_taken - course_credit
Я реализовал это, однако вместо того, чтобы обновления значения в базе данных он создает новую строку в таблице Teachers
.
Вот мой контроллер:
public function postcourseAssignTeacher(Request $request)
{
$assignTeacher = new AssignTeacher();
$assignTeacher->teacher_id = $request->Input(['teacher_id']);
$teacher->credit_taken = $request->Input(['credit_taken']);
$teacher->remaining_credit = $request->Input('remaining_credit');
$assignTeacher->course_id = $request->input('course_id');
$course->name = $request->Input('name');
$course->credit = $request->Input('credit');
$teacher->remaining_credit = $teacher->credit_taken -$course->credit;
$assignTeacher->save();
// $course->save();
$teacher->update();
return redirect('courseAssignTeacherPage');
}
Как обновить выше двух столбцов в таблице учителя я вместо того, чтобы вставить новую запись.
При рассмотрении этого вопроса примерно 3 раза я не понимаю вашу структуру базы данных. Просмотрите и отредактируйте свой вопрос, сосредоточив внимание на согласованности при названии своих моделей и таблиц. Вы говорите в своем вопросе, что у вас есть новая запись «Учитель», созданная с помощью вашего кода, но в коде вы создаете новый объект под названием «AssignTeacher», который походит на вашу другую модель «Курс Assign to Teacher». ОЧЕНЬ ОБЕСПЕЧЕНИЕ! Помогите нам помочь. – haakym
Кроме того, я не понимаю, как ваш код работает даже при вызове методов в переменной '$ teacher' и' $ course', которые даже не объявлены !? – haakym
См. Здесь 3 таблицы с 3-мя моделями. Таблица преподавателей имеет такие столбцы, как 'credit_taken',' else_credit', а в таблице курса есть 'course_name',' course credit' и Im, используя другую таблицу 'Course Assign To Teacher' и здесь Im keep courses_id таблицы курсов и teacher_id таблицы учителя. На странице просмотра я беру эти данные. Вот почему Im создает новый объект, например «Назначение курса для учителя» для сохранения данных. – User57