我正在使用一个角色包,它在我的数据库中存储了很多关系数据。所以有一个users
表和一个带有外键的user_roles
表......等等......
我正在使用以下代码更新模型:
$user = User::findOrFail($id);
$user->update(request()->all());
$user->syncRoles(request()->input('roles', []));
我有什么方法可以在roles
变量上保留$user
的引用,以便在这些代码行运行后可以使用它们吗?
我问,因为我之后使用的是日志记录系统:
activity()->on($user)->by(auth()->user())->withProperties([
'user' => $user,
'roles' => request()->input('roles'),
])->log('Updated User');
我想简要介绍一下:
activity()->on($user)->by(auth()->user())->withProperties($user)->log('Updated User');
答案 0 :(得分:1)
您需要刷新数据库中的模型数据。 E.g。
$user = $user->fresh('roles');
答案 1 :(得分:0)
例如使用延迟加载:
$user = User::findOrFail($id);
$roles = $user->roles;
在您的User
模型上,您将为角色表创建HasMany
关系。
渴望加载:
$user = User::with('roles')->findOrFail($id);
答案 2 :(得分:0)
在User.php模型中添加关系:
public function roles(){
return $this->hasMany(Role::class);
}
现在只需在代码中调用它即可获得如下角色:
$aUser = User::with('roles')->find($id);
$roles = $aUser->roles;