discovery-tecnologia/dsc-mercado-livre

Adicionar mais de uma imagem

Closed this issue · 2 comments

Ao tentar adicionar mais de uma imagem no produto, não sei se é a maneira correta que estou utilizando, o Array retornado está duplicando sempre para o ultimo adicionado.

$item = new Item();
$picture = new Picture();

foreach ($photos as $photo) {
     $picture->setSource($photo->getSecureUrl());
     $item->addPicture($picture);
 }

O resultado final do $item->pictures->elemets deveria ser:

-pictures: ArrayCollection {#1137 ▼
    -elements: array:1 [▼
      0 => Picture {#1156 ▼
        -source: "https://mlb-s1-p.mlstatic.com/891874-MLB25542788462_042017-O.jpg"
      }
      1 => Picture {#1156 ▼
        -source: "https://mlb-s1-p.mlstatic.com/478668-MLB25542788462_044018-O.jpg"
      }
      2 => Picture {#1156 ▼
        -source: "https://mlb-s1-p.mlstatic.com/9752452-MLB25542788462_043019-O.jpg"
      }
    ]
  }

Porém está vindo tudo igual:

-pictures: ArrayCollection {#1137 ▼
    -elements: array:1 [▼
      0 => Picture {#1156 ▼
        -source: "https://mlb-s1-p.mlstatic.com/891874-MLB25542788462_042017-O.jpg"
      }
      1 => Picture {#1156 ▼
        -source: "https://mlb-s1-p.mlstatic.com/891874-MLB25542788462_042017-O.jpg"
      }
      2 => Picture {#1156 ▼
        -source: "https://mlb-s1-p.mlstatic.com/891874-MLB25542788462_042017-O.jpg"
      }
    ]
  }

O que já debuguei:

No Doctrine o $element é passado para o método ADD de maneira correta;'

Ola @luishscosta

Tenta dessa forma:

$item = new Item();

foreach ($photos as $photo)  {
     $picture = new Picture();
     $picture->setSource($photo->getSecureUrl());
     $item->addPicture($picture);
}

Voce deve instanciar o Picture dentro do foreach

Show de bola @dilowagner Funcionou perfeitamente!

Obrigado!!