简体   繁体   English

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

[英]How to update a related model in Laravel Eloquent

Here the scenario is, I have 3 models/tables: 1. Teacher 2. Course 3. Course Assign to Teacher这里的场景是,我有 3 个模型/表:1. Teacher 2. Course 3. Course Assign to Teacher

In the Teacher model/table there are two columns named: credit_taken and remaining_credit ( default 0 ) and in the Course model/table there is a course_credit column.Teacher模型/表有两列命名为: credit_takenremaining_creditdefault 0 ),并在Course模型/表有一个course_credit柱。

So here is the problem: in the model/table Course Assign to Teacher when a Teacher takes a Course the value of this column should be calculated like this: remaining_credit = credit_taken - course_credit所以这里是问题:在模型/表中Course Assign to TeacherTeacher参加Course ,该列的值应该这样计算:remaining_credit = credit_taken - course_credit

I have implemented this, however instead of the value updating in database it's creating a new row in the Teachers table.我已经实现了这个,但是它不是在数据库中更新值,而是在Teachers表中创建一个新行。

Here is my controller:这是我的控制器:

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');
}

How do I update above two columns in teacher table instead of inserting a new record.如何更新教师表中的两列以上而不是插入新记录。

try with this:试试这个:

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');
}

and if you want to insert course should be create $course=new Course();如果你想插入课程应该创建 $course=new Course();

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM