Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

183
Visualizações
Cómo obtener la suma de claves de matriz multiplicadas de una matriz

Un cargo tiene muchos orders . Un order tiene una quantity y un price . Para cada order en un cargo , quiero devolver la suma de quantity * price como un valor único.

Una colección de cargo devuelve datos como:

 { "data": { "cargo_id": 4, "name": "Cargo Name", "qty": "366200.00", "cost": 140, "product_id": 1, "product": { "id": 1, "name": "Sample Product" }, "orders": [ { "id": 1, "cargo_id": 4, "qty": 14200, "price": "500" }, { "id": 4, "cargo_id": 4, "qty": 12000, "price": "500" }, { "id": 6, "cargo_id": 4, "qty": 5600, "price": "500" } ], "comments": "sample", } }

He intentado usar un Eloquent Accessor en la clase Cargo como:

 namespace App; use Illuminate\Database\Eloquent\Model; class Cargo extends Model { protected $guarded = []; protected $appends = [ 'product_margin' ]; public function orders() { return $this->hasMany(Order::class); } public function getProductMarginAttribute() { $orders = $this->orders(); $total = 0; foreach ($orders as $order) { $total += $order['qty'] * $order['price']; } return $total; } }

Pero product_margin devuelve 0 . ¿Cómo puedo hacer que esto funcione?

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Este $this->orders() devuelve muchos datos de relación. Para obtener la colección de elementos de los datos de relación, debe usar get() . Actualiza el código en tu modal Cargo .

 public function getProductMarginAttribute() { $orders = $this->orders()->get(); $total = 0; foreach ($orders as $order) { $total += $order['qty'] * $order['price']; } return $total; }
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda