【发布时间】:2021-12-11 14:25:21
【问题描述】:
我有以下表格:
products(id, name, price)
features(id, name)
feature_values(id, feature_id, value)
warehouse (id, location)
product_warhouse(id, product_id, warehouse_id, quantity)
我想获取某个点(纬度,经度)最近仓库的产品,我希望输出如下:
products : {
{id: ...
name:...
price: ....
features: {
id: ...
name: ...
feature_vaulues:
{
{...},
{...}
}
}
换句话说:我想要具有每个产品的特征和每个特征的特征值并且也属于该产品的产品。
现在我有以下代码:
$products= Product::whereHas('warehouses', static function ($q) use ($req) {
$q->where('warehouses.id', Warehouse::orderByDistance('location', new Point($req- >query('lat'), $req->query('lng')))->first()->id);
})
->with('feature_values')
->with('feature_values.feature')
->paginate();
但我想要的是功能,feature.feature_values 也属于该产品,而不仅仅属于该功能。
如何实现我所需要的?
【问题讨论】:
标签: laravel eloquent laravel-8