Laravel:使用模型查询构建器获取重复记录的结果

Posted

技术标签:

【中文标题】Laravel:使用模型查询构建器获取重复记录的结果【英文标题】:Laravel: getting results with repeated records with model query builder 【发布时间】:2021-10-29 10:21:37 【问题描述】:

我正在构建一个提供用户 ID 的查询:

// ... building the $userIdsQuery
$userIds = $userIdsQuery->pluck('user_id');

像这样的数组:

[12, 13, 14, 14]

所以当我从模型中获取具有这些用户 ID 的用户时:

User::whereIn('id', $userIds)->get();

预计会给我三个 ID 为 [12, 13, 14] 的用户

但我想要 id 为 14 的用户两次!

原来如此。

有没有很好/干净的方法来做到这一点?

或者我是否必须将用户一个一个地放入某个数组/集合中?

【问题讨论】:

【参考方案1】:

使用foreach 循环:

$user = array();
$userIds = [12, 13, 14, 14];

foreach ($userIds as $key => $userId) 
   $user[$key] = User::find($userId);

【讨论】:

我首先喜欢这个(带有集合),然后我决定使用一个数据库视图来连接两个表并从那里获取结果。

以上是关于Laravel:使用模型查询构建器获取重复记录的结果的主要内容,如果未能解决你的问题,请参考以下文章