【发布时间】:2016-08-28 05:29:09
【问题描述】:
这里的场景是,我有 3 个模型/表:
1.Teacher
2.Course
3.Course Assign to Teacher
在Teacher 模型/表中有两列名为:credit_taken 和remaining_credit (default 0),在Course 模型/表中有一个course_credit 列。
所以问题出在这里:在模型/表Course Assign to Teacher 中,当Teacher 采用Course 时,该列的值应该这样计算:
剩余学分 = 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。很混乱!请帮助我们帮助您。 -
另外,我不明白你的代码是如何工作的,因为你正在调用
$teacher和$course甚至没有声明的变量上的方法!? -
见这里 3 表 3 模型。教师表有
credit_taken、remaining_credit等列,课程表有course_name、course credit和我使用另一个表Course Assign To Teacher,这里我保留课程表的课程ID 和教师表的教师ID。在视图页面中,我正在获取这些数据,这就是为什么我创建像Course Assign to Teacher这样的新对象来保存数据。 -
您在问题中将模型称为
Course Assign To Teacher,然后在代码中将其称为AssignTeacher,这真的很令人困惑!您应该做的是使用 Eloquent 的关系添加相关记录:laravel.com/docs/5.2/eloquent-relationships
标签: php laravel laravel-5 eloquent