【发布时间】:2025-11-25 23:05:01
【问题描述】:
好的,大家好,我正在为这个问题苦苦挣扎,所以我需要你的帮助。
所以问题是我有超过 6000 种产品的数据库,我想获取一些特定的类别及其子类别,以及与它们关联的产品。
这是我制作的存储类别的示例数组(键是所选类别 ID,数组值是所有子类别 ID)。
$products_categories = array(
3 => [
4, 5 , 6
],
10 => [
40, 30, 20
]
);
这是我获得所有具有这些类别的产品的雄辩查询。
$all_fetched_categories = array_merge(...$products_categories);
if (!empty($products_categories)) {
$products = Product::query();
$products = $products->with([
'media',
])
->active()
->top()
->whereHas('categories', function ($query) use ($all_fetched_categories) {
$query->whereIn('shop_category_id', $all_fetched_categories);
});
$products = $products->get();
}
所以问题是,每个主要类别我只需要 5 个产品。使用我提供的代码,我无法在查询中进行逻辑限制。
【问题讨论】:
标签: php sql laravel laravel-5 backend