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

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

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 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!