【发布时间】:2021-06-21 14:30:31
【问题描述】:
我正在尝试获取我所有摘要中最受欢迎的产品。可取所有摘要中最常见的产品名称。
我有一个汇总表和一个产品表,中间有一个数据透视表。
关系如下:
产品型号
public function summaries()
{
return $this->belongsToMany(Summary::class, 'product_summary', 'summary_id','product_id');
}
汇总模型
public function products()
{
return $this->belongsToMany(Product::class, 'product_summary', 'summary_id','product_id');
}
所以当我们说数据库中的所有摘要时,它们中的大多数都将产品 A 作为产品。我想检索产品 A 的名称或对象,以便知道最常见的产品。
我似乎无法让它工作。我试过像
$product = Summary::query()
->with(array('products' => function($query) {
$query->groupBy('name')->select('name');
}))
->get();
或者
$top = Summary::select()->with('products')
->get()->sortByDesc(function($item){
$item->name;
})->take(1)->get();
但它只是不起作用。我做错了什么?
【问题讨论】:
-
“它不起作用”是什么意思?有错误信息吗?
标签: php database laravel eloquent