在Laravel中使用另一个雄辩的查询ID获取所有项目

发布于 2025-01-23 04:34:48 字数 390 浏览 0 评论 0原文

我有这样的东西:

$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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

在巴黎塔顶看东京樱花 2025-01-30 04:34:48

使用- > pluck('id') and wityin()

$items = Item::where('name', $request['names'])->get();

$shops = Shop::whereIn('item_id', $items->pluck('id'))->get();

雄辩的集合可以访问Laravel收集类的许多相同功能:

https://laravel.com/docs/docs/9.x/collections#available-methods

代码> - > pluck('id')将返回所有itemss.id记录的数组,然后您可以通过- > wherein(' item_id',...);

Use ->pluck('id') and whereIn():

$items = Item::where('name', $request['names'])->get();

$shops = Shop::whereIn('item_id', $items->pluck('id'))->get();

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 all items.id records, which you can then use to query via ->whereIn('item_id', ...);

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文