【发布时间】:2019-09-14 19:16:41
【问题描述】:
我想从$space_roles 变量中访问具有以下结构["role"=>"user_id"] 的嵌套集合属性,其中包含:
Illuminate\Database\Eloquent\Collection {#3168
all: [
App\UserGroup {#3153
role: "CONTRIBUTORS",
updated_at: "2019-04-25 09:03:24",
name: "Contributeurs",
created_at: "2019-04-25 09:03:24",
slug: "contributeurs-2",
id: 765,
users: Illuminate\Database\Eloquent\Collection {#3152
all: [],
},
},
App\UserGroup {#3156
role: "AUTHORS",
updated_at: "2019-04-25 09:03:24",
name: "Auteurs",
created_at: "2019-04-25 09:03:24",
slug: "auteurs-2",
id: 1554,
users: Illuminate\Database\Eloquent\Collection {#3169
all: [
App\User {#3180
updated_at: "2019-04-25 09:01:42",
created_at: "2019-04-25 09:01:42",
last_name: "Lisangola",
company: "Kinshasa Digital",
first_name: "Christian",
slug: "christian-lisangola",
email: "christian@kinshasadigital.com",
id: 1296,
},
],
},
},
App\UserGroup {#3159
role: "ANIMATORS",
updated_at: "2019-04-25 09:03:24",
name: "Animateurs",
created_at: "2019-04-25 09:03:24",
slug: "animateurs-2",
id: 1534,
users: Illuminate\Database\Eloquent\Collection {#3171
all: [],
},
},
App\UserGroup {#3162
role: "ADMINISTRATORS",
updated_at: "2019-04-25 09:03:24",
name: "Administrateurs",
created_at: "2019-04-25 09:03:24",
slug: "administrateurs-1",
id: 1323,
users: Illuminate\Database\Eloquent\Collection {#3172
all: [
App\User {#3185
updated_at: "2019-04-25 09:03:05",
created_at: "2019-04-25 09:03:05",
last_name: "Calvin",
company: "Gravity",
first_name: "Jean",
slug: "jean-calvin",
email: "jean@gmail.com",
id: 1533,
},
],
},
},
],
}
为了尝试得到我想要的东西,我使用了 laravel 集合方法 pluck 通过执行 $space_roles->pluck('users.id','role') 并返回 null 作为用户属性。
但我无法获得预期的结果。我尝试按照此处的说明进行操作:Accessing data from a Collection 通过像这样链接$space_roles->pluck('users')->flatten()->pluck('id'),它可以工作,但我只能访问users 而不是role。
我坚持这一点。
【问题讨论】:
-
每个角色会有多个用户吗?如果是这样,您是否希望结构为
['role' => ['user_ids']]? -
是的,一个用户可以有多个角色
标签: laravel laravel-5 eloquent