Tem muitos através de muitos para muitos
Eu tenho o seguinte layout de tabela:
deals:
- id
- price
products:
- id
- name
deal_product:
- id
- deal_id
- product_id
metrics:
- id
- name
metric_product:
- id
- metric_id
- product_id
- value
products
emetrics
tenha um relacionamento muitos-para-muitos com uma coluna dinâmica de valor.
deals
eproducts
também têm um relacionamento muitos-para-muitos.
Posso obter métricas para um produto com$product->metrics
, mas quero poder obter todas as métricas para todos os produtos relacionados a um acordo, para poder fazer algo assim:$deal->metrics
.
Atualmente, tenho o seguinte no meuDeal
modelo:
public function metrics()
{
$products = $this->products()->pluck('products.id')->all();
return Metric::whereHas('products', function (Builder $query) use ($products) {
$query->whereIn('products.id', $products);
});
}
Mas isso não retorna um relacionamento, por isso não posso carregá-lo com entusiasmo ou obter modelos relacionados.
Ele precisa estar no formato de relacionamento, porque eles precisam estar ansiosos para o meu caso de uso.
Obrigado pela ajuda!