Php 如何在Laravel Eloquent中更新相关模型
这里的场景是,我有3个模型/表: 1. <代码>教师 2. <代码>课程 3. <代码>课程分配给教师 在Php 如何在Laravel Eloquent中更新相关模型,php,laravel,laravel-5,eloquent,Php,Laravel,Laravel 5,Eloquent,这里的场景是,我有3个模型/表: 1. 教师 2. 课程 3. 课程分配给教师 在教师模型/表格中有两列,分别命名为:学分和剩余学分(默认值0),在课程模型/表格中有一列课程学分 问题是:在模型/表格课程分配给教师中,当教师选择课程时,此列的值应按如下方式计算: 剩余学分=已修学分-课程学分 我已经实现了这一点,但是它没有更新数据库中的值,而是在Teachers表中创建了一个新行 这是我的控制器: public function postcourseAssignTeacher(Request $
教师
模型/表格中有两列,分别命名为:学分
和剩余学分
(默认值0
),在课程
模型/表格中有一列课程学分
问题是:在模型/表格课程分配给教师
中,当教师
选择课程
时,此列的值应按如下方式计算:
剩余学分=已修学分-课程学分
我已经实现了这一点,但是它没有更新数据库中的值,而是在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');
}
如何更新教师表中的上述两列,而不是插入新记录。尝试以下操作:
public function postcourseAssignTeacher(Request $request)
{
$assignTeacher = new AssignTeacher();
$assignTeacher->teacher_id = $request->Input(['teacher_id']);
$teacher=Teacher::find(Input($request->['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');
}
如果要插入课程,则应为create$course=newcourse() 关于这个问题我复习了三遍,我不理解你的数据库结构。请审查和编辑您的问题,重点是命名模型和表的一致性。您在问题中说,您有一个新的
教师
记录是通过您的代码创建的,但在您的代码中,您创建了一个名为AssignTeacher
的新对象,它听起来像您的另一个模型课程分配给教师
。非常混乱!请帮助我们帮助您。另外,我不明白您的代码在调用未声明的$teacher
和$course
变量的方法时是如何工作的!?请参见这里的3个表和3个模型。教师表中有如下列:credit\u taked
,restinue\u credit
,课程表中有course\u name
,course credit
,我使用另一个表课程分配给教师
,这里我保留了课程表的课程id和教师表的教师id。在查看页面中,我获取了这些数据,这就是为什么我要创建新的对象,如课程分配给教师
来保存数据。在你的问题中,你称这个模型为课程分配给教师
,然后在你的代码中,你称它为分配给教师
,这真让人困惑!您应该使用Eloquent的关系添加相关记录: