Quando debugo a $cursos, ele me mostra todos os meus cursos, mas no resultado final ele só me mostra o ultimo curso do meu repositório, é como se ele estivesse inserindo na mesma tag e sobrepondo ela
<?php
namespace Alura\Cursos\Controller;
use Nyholm\Psr7\Response;
use Alura\Cursos\Entity\Curso;
use Psr\Http\Message\ResponseInterface;
use Doctrine\ORM\EntityManagerInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\RequestHandlerInterface;
class CursosEmXml implements RequestHandlerInterface
{
private $repositorioDeCursos;
public function __construct(EntityManagerInterface $entityManager)
{
$this->repositorioDeCursos = $entityManager->getRepository(Curso::class);
}
public function handle(ServerRequestInterface $request) : ResponseInterface
{
$cursos = $this->repositorioDeCursos->findAll();
$cursosEmXml = new \SimpleXMLElement('<cursos/>');
echo '<pre>';print_r($cursos);echo '</pre>';
foreach ($cursos as $key => $curso) {
$cursosEmXml = $cursosEmXml->addChild('curso');
$cursosEmXml->addChild('id', $curso->getId());
$cursosEmXml->addChild('descricao', $curso->getDescricao());
}
return new Response(200, [], $cursosEmXml->asXML());
}
}