这是我的代码:
if ($user->role == NULL){
$user->setRole(Roles::Company);
$user->save();//I can see that it works,the database is updated
$user->fresh(['role']);
}
if ($user->role->id == Roles::Company)//error
//do something
在有错误的行上我可以看到:
尝试获取非对象的属性
我看到角色为空,但我不知道为什么以及如何改变这种行为。刷新页面后一切正常
答案 0 :(得分:1)
您需要做的是从fresh
方法获取新用户,如下所示:
$user = $user->fresh(['role']);
此方法刷新模型并返回新实例(在当前实例中不刷新)。