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 和使用块是不是更慢?