定义关系后,此集合实例上不存在属性[角色]

时间:2018-12-03 23:26:08

标签: laravel collections eloquent

我正在尝试加载属于权限的所有角色。 $permissions = \App\Permission::with('roles')->get();

当我尝试和return $permissions->roles;时,即使我已经设置了适当的关系,也会遇到此错误:

  

此收藏夹中不存在属性[角色]

权限模型关系

public function roles()
{
    return $this->belongsToMany(Role::class);
}

当我简单地return $permissions;时,我得到适当的输出:

[  
   {  
      "id":1,
      "name":"edit_post",
      "label":"Edit Posts",
      "created_at":null,
      "updated_at":null,
      "roles":[  
         {  
            "id":1,
            "name":"admin",
            "label":"Admin",
            "created_at":null,
            "updated_at":null,
            "pivot":{  
               "permission_id":1,
               "role_id":1
            }
         }
      ]
   },
   {  
      "id":2,
      "name":"delete_post",
      "label":"Delete Posts",
      "created_at":null,
      "updated_at":null,
      "roles":[  
         {  
            "id":1,
            "name":"admin",
            "label":" Admin",
            "created_at":null,
            "updated_at":null,
            "pivot":{  
               "permission_id":2,
               "role_id":1
            }
         }
      ]
   }
]

我不确定这是怎么回事。

1 个答案:

答案 0 :(得分:1)

您需要遍历权限角色。

foreach ($permissions as $permission) {
    return $permission->roles;
}