在laravel中保存后无法访问关系

时间:2016-10-11 12:49:07

标签: php laravel eloquent

这是我的代码:

    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

在有错误的行上我可以看到:

  

尝试获取非对象的属性

我看到角色为空,但我不知道为什么以及如何改变这种行为。刷新页面后一切正常

1 个答案:

答案 0 :(得分:1)

您需要做的是从fresh方法获取新用户,如下所示:

$user = $user->fresh(['role']);

此方法刷新模型并返回新实例(在当前实例中不刷新)。