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

232
Vistas
Shopware 6 ¿Cómo agrego correctamente una matriz como extensiones a SearchResult?

Tengo varias clases de suscriptores en funcionamiento que se suscriben a ProductListingResultEvent, que agregan una matriz como extensión al resultado.

El código se parece a esto:

 $myExampleArray = [ ['key' => 'foobar', 'val1' => 'bar', 'val2' => 'foobarfoo'], ['key' => 'barfoo', 'val1' => 'foo', 'val2' => 'barfoobar'] ]; $myStructCollection = new StructCollection(); foreach ($myExampleArray as $myExampleElement) { $myStructCollection->set($myExampleElement['key'], $myExampleElement); } $event->getResult()->addExtension('myExampleExtension', $myStructCollection);

¿Es esa la forma correcta de hacerlo? ¿Siempre tengo que instanciar una nueva estructura para agregar datos como una extensión?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Sí, siempre tiene que crear una nueva instancia de Struct-Class, ya que la estructura de extensión que agregará debe ser independiente del núcleo u otros complementos, para que no interfieran con su lógica y puedan anular cosas, por ejemplo.

Por lo tanto, siempre debe usar el prefijo de su proveedor en el nombre de la extensión, para asegurarse de que no haya conflictos de nombres con otros complementos.

Para el caso que está describiendo, hay un ArrayStruct especial que puede usar para crear más fácilmente una estructura para una matriz. Sin embargo, la estructura de matriz espera que la clave indexe la matriz de entrada, por lo que es posible que deba cambiar un poco la estructura de los datos de su matriz:

 $myExampleArray = [ 'foobar' => ['key' => 'foobar', 'val1' => 'bar', 'val2' => 'foobarfoo'], 'barfoo' => ['key' => 'barfoo', 'val1' => 'foo', 'val2' => 'barfoobar'] ]; $event->getResult()->addExtension('myExampleExtension', new ArrayStruct($myExampleArray);

Si no es tan fácil cambiar la estructura de su matriz, su solución también está bien, pero dependiendo del tamaño de la matriz, es posible que desee deshacerse del bucle adicional que la atraviesa.

over 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