-1
这里的情况是,我有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次我不明白你的数据库结构。请检查并编辑您的问题,重点关注命名模型和表格的一致性。你在你的问题中说你有一个新的'Teacher'记录是通过你的代码创建的,但是在你的代码中你创建了一个名为'AssignTeacher'的新对象,这听起来就像你的另一个模型'Course Assign to Teacher'。很混乱!请帮助我们帮助你。 – haakym
另外,我不明白你的代码是如何工作的,因为你正在调用'$ teacher'和'$ course'变量的方法,甚至没有声明!? – haakym
请参阅此处3种型号的表格。老师表有列如'credit_taken','remaining_credit'和课程表有'course_name','课程学分',我使用另一个表'课程分配给教师',我在这里保留老师的课程表和teacher_id的courses_id。在我看到的页面中,我正在使用这些数据,这就是为什么我创建像“课程分配给教师”这样的新对象来保存数据。 – User57