如何在Laravel Eloquent中更新相关模型 [英] How to update a related model in Laravel Eloquent

查看:60
本文介绍了如何在Laravel Eloquent中更新相关模型的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在这种情况下,我有3个模型/表:1. Teacher 2. 课程3. 课程分配给老师

Here the scenario is, I have 3 models/tables: 1. Teacher 2. Course 3. Course Assign to Teacher

Teacher 模型/表中,有两列名为: credit_taken remaining_credit (默认0 )在 Course 模型/表中,有一个 course_credit 列.

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.

这就是问题所在:在模型/表的 Course Assign to Teacher 中,当 Teacher 接受 Course 时,此列的值应该这样计算:missing_credit =信用额度-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

我已经实现了这一点,但是不是在数据库中更新值,而是在 Teachers 表中创建了新行.

I have implemented this, however instead of the value updating in database it's creating a new row in the Teachers table.

这是我的控制人:

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.

推荐答案

尝试以下操作:

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

如果要插入课程,则应创建$ course = new Course();

and if you want to insert course should be create $course=new Course();

这篇关于如何在Laravel Eloquent中更新相关模型的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆