2016-05-03 22 views
-1

这里的情况是,我有3个型号/表: 1. Teacher 2. Course 3. Course Assign to Teacher如何更新Laravel洋洋洒洒相关模型

Teacher模型/表有两列名称为:credit_takenremaining_creditdefault 0)和Course型号/表中有course_credit列。

所以这里的问题是:在模型/表Course Assign to TeacherTeacher需要Course此列的值应该这样计算: remaining_credit = 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'); 
} 

如何更新,而不是插入新记录在上面的老师表两列。

+1

在回顾这个问题约3次我不明白你的数据库结构。请检查并编辑您的问题,重点关注命名模型和表格的一致性。你在你的问题中说你有一个新的'Teacher'记录是通过你的代码创建的,但是在你的代码中你创建了一个名为'AssignTeacher'的新对象,这听起来就像你的另一个模型'Course Assign to Teacher'。很混乱!请帮助我们帮助你。 – haakym

+0

另外,我不明白你的代码是如何工作的,因为你正在调用'$ teacher'和'$ course'变量的方法,甚至没有声明!? – haakym

+0

请参阅此处3种型号的表格。老师表有列如'credit_taken','remaining_credit'和课程表有'course_name','课程学分',我使用另一个表'课程分配给教师',我在这里保留老师的课程表和teacher_id的courses_id。在我看到的页面中,我正在使用这些数据,这就是为什么我创建像“课程分配给教师”这样的新对象来保存数据。 – User57

回答

1

尝试这样的:

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

,如果你想插入过程中,应创建$当然=新课程();