我试图使用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"=>错误