Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

262
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!