在Laravel中实现"groupBy"方法面临困难



我试图使用laravel中的groupBy方法获取数据,但它返回了所有数据。我想要的是

让有两张表

表1:变体

id    variant
1     color
2     size

表2:product_variants

color   variant_id
red     1
yellow  1
red     1
sm      2
xl      2
lg      2

现在我想获取数据,以便它返回如下:

variant_table: {
id:1,
variant: color,
variants: {
variant_id: 1,
color:red
},
{
variant_id: 1,
color:yellow
}
},
{
id:2,
variant: size,
variants: {
variant_id: 2,
color:sm
},
{
variant_id: 2,
color:lg
},
{
variant_id: 2,
color:xl
}
}

但我得到的是所有变体,而不是按variant_table id分组的区别,我的代码:

$productVariants  = ProductVariant::with('productVariants')
->whereHas('productVariants',function ($q) {
$q->groupBy('variant_id');
})
->get();

假设product_variants表的模型是ProductVariant假设变量表的模型是Variant假设模型中的ProductVariant,关系函数名称为variant((

$product_variants = ProductVariant::with('variant')->groupBy('variant_id')->get();

试试这个$product_variants = ProductVariant::with('variant')->get()->groupBy('variant_id');如果它不起作用,那么config\database.php-->quot;mysql";大堆设置"strict"=>错误

相关内容

  • 没有找到相关文章

最新更新