如何使用组由在哪里有拉拉维尔



>我在我的项目中使用 Metable 为订单创建元,但我有一个问题
,我想要具有相同电子邮件
的组订单
这是 Metable 表格 图片 : 图片 1 图片 2

我需要这样的代码可以工作:)

Order::whereHas( 'meta', function($query) {
$query->where("key" , "gmail");
})->groupBy('meta.value')->get();

这是在订单模型中由特质"使用 Metable"调用的元关系:

public function meta(): MorphMany
{
return $this->morphMany($this->getMetaClassName(), 'metable');
}

谢谢

这个查询可能有效,我们从元模型开始查询:

Meta::with('metable')
->whereHasMorph('metable', Order::class)
->where('key', 'gmail')
->get()
->groupBy('value')
->map(function ($metaCollection) {
return $metaCollection->map->metable->unique('id');
});

这是未经测试的,但我会尝试从 Order 类中检索模型:

Order::whereHas('meta', function($query) {
$query->where('key', 'gmail');
})->with(['meta' => function($query) {
$query->groupBy('value')
}])->get();

请尝试以下解决方案:

Order::whereHas( 'meta', function($query) {
$query->where("key" , "gmail")
$query->groupBy('meta.value');
})->get();

相关内容

  • 没有找到相关文章

最新更新