Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

223
Vistas
Colección Laravel usando mapa y contiene

Tengo un problema con la clave available en la colección de map .

El uso de la clave available contains el método. Debería devolver verdadero si el valor de la identificación del producto en $productos no disponibles no contiene $productos ($value->product_id == $product->id)

¿Qué hice mal?

 $unavailableProducts = $this->unavailableProducts(); $products = $this->products->all(); $allProducts = $products->map(function ($product) use($unavailableProducts) { return [ 'id' => $product->id, 'title' => $product->title, 'available' => $unavailableProducts['result']->contains(function ($value, $key) use ($product) { if ($value->product_id == $product->id) { return false; } return true; }), ]; });
about 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Primero, asegúrese de que $unavailableProductions['result'] sea una colección.

En segundo lugar, cambie su método de contains de esta manera:

 $unavailableProducts = $this->unavailableProducts(); $products = $this->products->all(); $allProducts = $products->map(function ($product) use($unavailableProducts) { return [ 'id' => $product->id, 'title' => $product->title, 'available' => $unavailableProducts['result']->contains('id', $product->id), ]; });

$unavailableProducts['result']->contains('id', $product->id) determinará si la $unaviableProductions['result'] tiene una clave de id donde el valor es $product->id

about 4 years ago · Santiago Trujillo Denunciar

0

Puedes probar este enfoque

 $policyPackageDetails = PolicyPackage::where('isactive', '=', 1)->where('id', '=', $pid) ->with('policy_package_details') ->select('id', 'title', 'subtitle', 'shorttitle', ) ->get(); $policyPackageDetails = $policyPackageDetails ->map(function ($item){ return collect([ 'id' => $item->id, 'title' => $item->title, 'subtitle' => $item->subtitle, 'short_title' => $item->shorttitle, 'policy_package_details' => $item->policy_package_details->map(function ($details){ return [ 'attribute_name' => $details->attname, 'attribute_value' => $details->attvalue, ]; }), ]); });

aquí obteniendo datos de modelos relacionales, permaneciendo y filtrándolos, la salida será como

 [ { "id": 61, "title": " Health (Platinum)", "subtitle": "for 1 year", "short_title": "HL-SHP-1", "policy_package_details": [ { "attribute_name": "in", "attribute_value": "180000" }, { "attribute_name": "out", "attribute_value": "20000" } ] } ]
about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda