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

270
Visualizações
Cambiar un atributo de la colección Laravel Eloquent cambia cada referencia

Aquí está mi escenario. Tengo una relación entre suscripción y producto. Cada suscripción pertenece a algún producto y tengo relaciones definidas.

Ahora si hago esto: Subscription::with(['product', 'address'])->get(); Obtendré todas las suscripciones con el producto.

El producto tiene atributos como shipping_price, price, etc.

Ahora, si cambio shipping_price de un producto dentro de una suscripción, cambia shipping_price para ese producto dentro de todas las suscripciones (esto es útil muchas veces, pero esta vez no quiero que este cambio se refleje en todas partes).

Por ejemplo:

 $subscriptions = Subscription::with('product')->get(); foreach ($subscriptions as $item) { $item->product->shipping_price = ShippingService::getShippingPrice($item->product->key, $item->product->shipping_price, $item->address->zip); }

Esto cambiará shipping_price para cada producto que tenga la misma ID dentro de esas suscripciones.

Mi requisito es detener este comportamiento en este único lugar. Entonces, si cambio un atributo, no cambia otros.

Conozco una forma de volver a consultar con loop y no obtener productos usando una carga ansiosa, pero eso será lento.

Gracias.

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

0

Agregaría una propiedad personalizada "real_shipping_price" a este modelo de producto con un accesor getRealShippingPriceAttribute (usando su ShippingService).

Consulte https://laravel.com/docs/5.3/eloquent-serialization#appending-values-to-json por ejemplo.

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