No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Convierte tus certificados en títulos universitarios en USA

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

19 Días
12 Hrs
24 Min
3 Seg
Curso de Fundamentos de Symfony 6

Curso de Fundamentos de Symfony 6

Profesor Italo Morales F

Profesor Italo Morales F

Estructura inicial

12/17
Recursos

Aportes 4

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

veo que no hay aportes asi que aprovecho para decir que esta weno el curso y gracias por traerlo
:3

También se puede usar el repository directamente como inyección de dependencia: ```js findAll(); return $this->json($repo); } } ```
#\[Route('/')]     public function home(EntityManagerInterface $entityManager): Response    {        // return $this->render( 'home.html.twig',\[        //     'comments' => $entityManager->getRepository(Comment::class)->findAll()        // ]);         // BUSCA EN ORDEN DESENDENTE         $commets = $entityManager->getRepository(Comment::class)->findBy(\[], \[            'id' => '   DESC'        ]);         return $this->render( 'home.html.twig',\[            'comments' => $commets        ]);     }

Estructura Inicial

La representación de una tabla en mi proyecto es una entidad

use App\Entity\Comment; //Mi entidad (mi tabla)
use Doctrine\ORM\EntityManagerInterface; //También necesito un sistema que administre a mis entidades
return $this->render('home.html.twig', [
      'comments' => $entityManager->getRepository(Comment::class)->findAll()
    ]);

Por partes:

render retorna una vista, Este método toma dos argumentos principales:
La ruta al archivo de la vista (en este caso home.html.twig)
Un array asociativo de variables que queremos pasar a la vista (en este caso queremos pasar los comments de nuestra base de datos)

$entityManager es el objeto que hemos definido en el argumento de la función del tipo EntityManagerInterface, administra entidades (nuestras tablas de bases de datos)

->getRepository(Comment::class) pedimos que nos de el repositorio asociado a la entidad ‘Comment’. El repositorio es una forma de encapsular las consultas a la base de datos.

Nota: usar ::class en php te da el nombre completamente calificado de la clase Comment, en este caso le decimos a doctrine que nustra clase esta en App\Entity\Comment. Ayuda a evitar errores tipográficos, refactorizar de manera segura y mejorar la legibilidad.

También analicemos aquí:

$comments = $entityManager->getRepository(Comment::class)->findBy([], [
'id' => 'DESC'
]);

…

return $this->render('home.html.twig', [
'comments' => $comments
]);

>findBy([], [‘id’ => ‘DESC’]) llamamos al metodo findBy que podemos consultar en Repository/CommentRepository.php:

@method Comment[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)

Y veremos que lo que hemos hecho es darle los dos primeros argumentos:

array $criteria → lo hemos pasado como array vacio []

array $orderBy = null → si no le pasamos nada, sería null, nosotros le hemos pasado ‘id’ ⇒ ‘DESC’

Y podríamos pasarle el limite y el offset de la siguiente manera:

$comments = $entityManager->getRepository(Comment::class)->findBy([], [
      'id' => 'DESC'
    ], 1, 1); //En este caso el límite es 1 y saltaríamos el 1 valor. (mostrariamos el segundo valor ordenado en DESC