如何在不同的表中更新一列中的值并自动更新另一列

时间:2020-04-30 12:28:16

标签: php mysql laravel crud

我尝试更新表Student中的名称值,并在表用户处自动更新列名称

我的控制器代码是

public function update(Request $request, $id)
    { 
        $user = User::where('id', $id)->first();
        $user->name = $request->name;
        $user->save();

        $student= Student::where('id', $id)->first();
        $student->name = $request->name;
        $student->save();

       return redirect()->route('profilestudent.edit', Auth::user()->student->id);
   }

没有错误,但是它更改了表用户的另一个用户的名称。

2 个答案:

答案 0 :(得分:0)

您可以尝试使用mutators

class User extends Model
{
    public function setNameAttribute($value)
    {
        $student= Student::where('user_id', $this->id)->first() if id is not key in Student
        $student->name = $value;
        $student->save();
        $this->attributes['first_name'] = $value;
    }
}

答案 1 :(得分:0)

您应该使用观察者。用户更新后,学生也将自动更新。