在Laravel中使用另一个雄辩的查询ID获取所有项目
我有这样的东西:
$items = Item::whereIn("name", $request["names"])->get();
现在,我想获取具有这些物品中任何商店的商店列表。类似的东西:
$shops = Shop::whereIn("item_id", $items)->get();
这是不起作用的,因为项目是一个雄辩的收藏(显然)。我可以做一些循环并获得这样的所有ID:
foreach ($items as $item){
$itemIds[] = $item
}
然后使用它,但是我觉得必须有一种更干净的方式。
有帮助吗?
I have something like this:
$items = Item::whereIn("name", $request["names"])->get();
Now I want to get a list of shops that have any of those items. Something like this:
$shops = Shop::whereIn("item_id", $items)->get();
This does not work, because items is an eloquent collection (obviously). I could do some loop and get all the ids like this:
foreach ($items as $item){
$itemIds[] = $item
}
And then use it, but I feel there must be a cleaner way.
Any help?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
使用
- > pluck('id')
andwityin()
:雄辩的集合可以访问Laravel收集类的许多相同功能:
https://laravel.com/docs/docs/9.x/collections#available-methods
代码> - > pluck('id')将返回所有
itemss.id
记录的数组,然后您可以通过- > wherein(' item_id',...);
Use
->pluck('id')
andwhereIn()
:Eloquent Collections have access to many of the same functions of Laravel's Collection Class:
https://laravel.com/docs/9.x/collections#available-methods
->pluck('id')
will return an array of allitems.id
records, which you can then use to query via->whereIn('item_id', ...);