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:使用模型查询构建器获取重复记录的结果的主要内容,如果未能解决你的问题,请参考以下文章

基于相关记录总和的查询构建器过滤器

将 PHP SQL 转换为 Laravel 查询构建器 [重复]

与 laravel 在处理数百万条记录时使用块的普通查询构建器相比,Laravel Eloquents 和使用块是不是更慢?

Laravel 通过属性获得雄辩的查询构建器关系

是否有必要在 laravel 中为数据库操作创建模型(用于查询构建器)?

具有计数关系的 Laravel 查询构建器