我的控制器上有这个:$results = Model::where('foreign_id', $id)->get();结果是:Collection {#111 ▼ #items: array:3 [▼ 0 => Model {#112 ▶} 1 => Model {#113 ▶} 2 => Model {#114 ▶} ]}但是,我需要$results进一步访问这些:$role_A = $results->where('role_id', 1);$role_B = $results->where('role_id', 2);$role_C = $results->where('role_id', 3);我的问题是,如果我通过以下方式引用它们,则会出错:$user_A = $role_A->created_at;$user_B = $role_B->created_at;$user_C = $role_C->created_at;我仍然需要像这样包括他们的索引位置:$user_A = $role_A[1]->created_at;我的问题是无法知道我引用它们的索引位置,例如,$user_A可以是下面的任何一个。$user_A = $role_A[0]->created_at;$user_A = $role_A[1]->created_at;$user_A = $role_A[2]->created_at;有什么方法可以更有效地从查询查询中引用变量?
3 回答
暮色呼如
TA贡献1853条经验 获得超9个赞
您必须每次都获得一个集合,而不是一个 QueryBuilder。
例如,做这样的事情
$role_A = $results->where('role_id', 1)->first(); $role_B = $results->where('role_id', 2)->first(); $role_C = $results->where('role_id', 3)->first();
得到你想要的作为一个集合。
慕森卡
TA贡献1806条经验 获得超8个赞
您需要筛选基础上,你的收藏role_id
对于role_id2 个你做的
$results = $results->filter(function ($value, $key) {
return $value->role_id == 2;
});
或直接在第一个查询中添加 where
$results = Model::where('foreign_id', $id)->where('role_id', 1)->first();
- 3 回答
- 0 关注
- 129 浏览
添加回答
举报
0/150
提交
取消