Php 如何在Laravel Eloquent中更新相关模型

Php 如何在Laravel Eloquent中更新相关模型,php,laravel,laravel-5,eloquent,Php,Laravel,Laravel 5,Eloquent,这里的场景是,我有3个模型/表: 1. 教师 2. 课程 3. 课程分配给教师 在教师模型/表格中有两列,分别命名为:学分和剩余学分(默认值0),在课程模型/表格中有一列课程学分 问题是:在模型/表格课程分配给教师中,当教师选择课程时,此列的值应按如下方式计算: 剩余学分=已修学分-课程学分 我已经实现了这一点,但是它没有更新数据库中的值,而是在Teachers表中创建了一个新行 这是我的控制器: public function postcourseAssignTeacher(Request $

这里的场景是,我有3个模型/表: 1. <代码>教师 2. <代码>课程 3. <代码>课程分配给教师

教师
模型/表格中有两列,分别命名为:
学分
剩余学分
默认值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的关系添加相关记录: