No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

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 3

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); } } ```

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 鈥楥omment鈥. 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([], [鈥榠d鈥 => 鈥楧ESC鈥橾) 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 鈥榠d鈥 鈬 鈥楧ESC鈥

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