SlideShare una empresa de Scribd logo
TRABAJO CON BASE DE DATOS: DOCTRINE
Trabajaremos con anotaciones (podríamos optar también por ficheros yml, php o xml).
El primer paso es configurar la base de datos (recordar que durante la instalación de Symfony se
establecieron los parámetros por defecto), en la ruta:
El siguiente paso es crear una base de datos para el proyecto, se puede hacer desde phpmyadmin o
desde consola:
Symfony permite crear las clases a partir del modelo relacional (ingeniería inversa). Pero vamos a
hacerlo a la inversa, creando las clases y posteriormente el modelo relacional.
Tenemos que crear la entidad Blog.php dentro de la carpeta Entity:
Y ahora para crear el esquema en base a esa clase:
Y observamos que se ha creado la tabla:
Y si volvemos a abrir la clase Blog.php observamos que se han creado automáticamente los setters
y los getters.
El siguiente paso es generar la ruta:
Vamos a crear un nuevo controlador, de manera que trabajaremos con un controlador para cada
entidad:
El siguiente paso, una vez mas, es crear la vista, en la carpeta Resources/views/Blog (previamente
creada).
El siguiente paso es instalar el paquete de Doctrine DataFixtures, para poder finalmente persistir
datos en la base de datos, donde introduciremos las diferentes entradas de la base de datos. Para
ello:
Hay que instalar también el paquete Fixtures, introducimos estas dos líneas en composer.json:
Actualizamos:
Ahora tenemos que tener también los paquetes “fixtures”:
Lo siguientes es registrar los paquetes en el appkernel.
Introducimos estas tres líneas:
Ahora tenemos que añadir los accesorios (datos). Para ellos creamos el fichero BlogFixtures.php:
Y lo llevamos a la carpeta (creada previamente):
Hay que modificar la clase BlogFixtures.php para añadir dos nuevos “uses”, extender la clase de
AbstractFixture y modificar el parámetro recibido por la funcion load:
Si todo ha ido bien al ejecutar este comando para cargar los datos se recibirá el siguiente mensaje:
Ahora probamos a introducir en la URL del navegador:
Tras esto volvemos a cargar esa URL y veremos que entramos en un post con contenido al que aún
le falta la imagen:
Tras añadir imágenes a la carpeta /web/images, y modificar el archivo screen.css en la carpeta css
(que ya teníamos creada anteriormente), el resultado es el siguiente:
Ahora hay que modificar el archivo Blog.php, para registrar sellos temporales del momento de la
persistencia en la base de datos:
Introducimos este constructor y función para que la aplicación la ejecute antes de hacer persistentes
los datos en la base de datos (@ORMPreUpdate):
Y volvemos a cargar los datos:
A continuación tenemos que cambiar el index del Page
(Blogger/BlogBundle/Resources/views/Page/index.html.twig) para poder mostrar todas las entradas
en la página principal.
Vamos ahora al PageController (Blogger/BlogBundle/Controller/PageController.php):
Ahora vemos que en nuestra home se enumeran todas las entradas.
Ahora vamos a la entidad Blog (Blog.php), vemos que la función getBlog devuelve blog. Tenemos
que modificarlo de la siguiente manera:
Esto sirve para poder determinar o limitar el número de caracteres de cada entrada que sacamos en
el listado del home.
Tras esto volvemos a la plantilla index.html.twig, y en la llamada a la entidad Blog podemos pasarle
como parámetro la longitud de la entrada.
Ahora vamos a separar la consulta doctrine del controlador, para poder reutilizarla en cualquier
momento sin tener que acceder al controlador. Para ello trabajaremos con repositorios, un script
donde pondremos todas las consultar doctrine.
Dentro de la carpeta Entity creamos una carpeta Repository y dentro creamos BlogRepository.php
con el siguiente contenido:
Y ahora cambiamos en el PageController la consulta por una llamada al repositorio:
Ahora vamos a trabajar los comentarios. Como un comentario es de un blog pero un blog tiene
muchos comentarios esto se trabaja con anotaciones. En primer lugar creo la entidad Comment en la
carpeta Entity.
Y en la entidad Blog:
php bin/console doctrine:generate:entities Blogger
Tras esto me ha debido crear todos los métodos de acceso en la clase Comment.
Hacemos persistentes las clases en la base de datos, lo haremos con migraciones.
Y veremos que se ha generado automáticamente la tabla de comentarios en nuestra base de datos:
Lo siguiente es cargar los comentarios. Para ello tenemos que llevarnos el fichero a DataFixtures y
después hacer un load.
Añadiendo al final también:
Ahora en la clase CommentRepository.php (creada automaticamente) añadimos:
Ahora en BlogController.php cambiamos:
Ahora cambiamos la plantilla show.html.twig:
Creamos en la carpeta views otra carpeta llamada Comment, con un archivo index en su interior con
el siguiente contenido:
Y ya podremos ver los comentarios en cada entrada:
Ahora vamos a implementar la funcionalidad para añadir comentarios. Para esto tenemos que
generar un formulario con Doctrine.
Se debe haber creado la clase con el siguiente contenido:
Necesitaremos un controlador para manejar este formulario. Para ello añadimos una nueva ruta:
Ahora tenemos que crear el CommentController.php:
Nota: Los parámetros de this→createForm en funcion createAction deben ser igual que en newAction.
Ahora creamos la vista form.html.twig en la ruta especificada:
Ahora creamos la vista create.html.twig:
Ahora hay que modificar el show.html.twig:
Y ya podemos añadir comentarios:
Podemos hacer que la vista de cada entrada en el home ofrezca info relativa al número de
comentarios que tiene esta entrada, e incluso convertir ese número en un enlace que nos lleve
directamente a esos comentarios en la entrada. Para ello tenemos que modificar el index.html.twig
del views/Page:
Vemos como dentro del href de la etiqueta <a> indicamos la ruta de la entrada del blog e incluso
con “#comments” indicamos que el navegador haga scroll vertical hasta llegar a la zona de los
comentarios. Posteriormente, añadimos el texto de la etiqueta <a>, que será la longitud del array de
comentarios.
Ahora vamos a implementar la barra lateral. Para ello añadimos en BlogRepository.php:
Y también:
Ahora vamos al PageController.php y añadimos:
Creamos sidebar.css en web/css con el siguiente contenido:
Creamos en Resources/views/Page el sidebar.html.twig:
Y por último en el layout.html.twig:
Finalmente tenemos:
Ahora para añadir a la barra lateral los comentarios más recientes tenemos que hacer lo siguiente:
Añadimos en el CommentRepository.php:
Ahora vamos al PageController.php y modificamos el sidebarAction:
Ahora en el config.yml (dentro de app/config/) incluimos:
En el sidebar.html.twig añadimos:
Y vemos que el blog ha cambiado:

Más contenido relacionado

La actualidad más candente

Tutorial de persistencia en java con postgresql
Tutorial de persistencia en java con  postgresqlTutorial de persistencia en java con  postgresql
Tutorial de persistencia en java con postgresql
Carlos Anrango
 
GUIA DE LABORATORIO DEL USO DE LOS FRAMEWORS PHONEGAP Y JQUERY MOBILE EN APL...
GUIA DE  LABORATORIO DEL USO DE LOS FRAMEWORS PHONEGAP Y JQUERY MOBILE EN APL...GUIA DE  LABORATORIO DEL USO DE LOS FRAMEWORS PHONEGAP Y JQUERY MOBILE EN APL...
GUIA DE LABORATORIO DEL USO DE LOS FRAMEWORS PHONEGAP Y JQUERY MOBILE EN APL...
Ivan Petrlik
 
Tutorial de jpa para windows usando net beans y mysql parte 1
Tutorial de jpa para windows usando net beans y mysql parte 1Tutorial de jpa para windows usando net beans y mysql parte 1
Tutorial de jpa para windows usando net beans y mysql parte 1
Henry Mendoza Puerta
 
Tutorial git comandos rafael mirandaibanez
Tutorial git comandos rafael mirandaibanezTutorial git comandos rafael mirandaibanez
Tutorial git comandos rafael mirandaibanez
rmirandaibanez
 
Laravel vc
Laravel vcLaravel vc
Laravel vc
Victor Cusco
 
ConexióN A Base De Datos En Netbeans
ConexióN A Base De Datos En NetbeansConexióN A Base De Datos En Netbeans
ConexióN A Base De Datos En Netbeans
guest044583b
 
Eclipse para novatos java
Eclipse para novatos javaEclipse para novatos java
Eclipse para novatos java
martaferrari
 
Reportes
ReportesReportes
Tutorial net beans
Tutorial net beansTutorial net beans
Tutorial net beans
Yarker Castillo del Rosario
 
Crear una base de datos mysql con un script de sql
Crear una base de datos mysql con un script de sqlCrear una base de datos mysql con un script de sql
Crear una base de datos mysql con un script de sql
Emerson Garay
 
File
FileFile
Configurar entorno Android
Configurar entorno AndroidConfigurar entorno Android
Configurar entorno Android
jubacalo
 
Reporte Java con JasperReport
Reporte Java con JasperReportReporte Java con JasperReport
Reporte Java con JasperReport
Geovanny Manuel Mendoza Gonzalez
 
Primeros pasos con Backbone js, por Xavier Aznar
Primeros pasos con Backbone js, por Xavier AznarPrimeros pasos con Backbone js, por Xavier Aznar
Primeros pasos con Backbone js, por Xavier Aznar
Pablo Aguilera
 
Power point report
Power point reportPower point report
Power point report
jhoselin stefany quispe diaz
 
Manual Netbeans Bases Datos2
Manual Netbeans Bases Datos2Manual Netbeans Bases Datos2
Manual Netbeans Bases Datos2
mtemarialuisa
 
Reportes en java con i report y netbeans
Reportes en java con i report y netbeansReportes en java con i report y netbeans
Reportes en java con i report y netbeans
hernanluis
 
Integración de Netbeans con Ireport y SQL Server
Integración de Netbeans con Ireport y SQL ServerIntegración de Netbeans con Ireport y SQL Server
Integración de Netbeans con Ireport y SQL Server
SonGoku10
 
Ruby on Rails Workshop
Ruby on Rails WorkshopRuby on Rails Workshop
Ruby on Rails Workshop
Gustavo Andres Brey
 
Tutorial eclipse
Tutorial eclipseTutorial eclipse
Tutorial eclipse
Grisel Hernández
 

La actualidad más candente (20)

Tutorial de persistencia en java con postgresql
Tutorial de persistencia en java con  postgresqlTutorial de persistencia en java con  postgresql
Tutorial de persistencia en java con postgresql
 
GUIA DE LABORATORIO DEL USO DE LOS FRAMEWORS PHONEGAP Y JQUERY MOBILE EN APL...
GUIA DE  LABORATORIO DEL USO DE LOS FRAMEWORS PHONEGAP Y JQUERY MOBILE EN APL...GUIA DE  LABORATORIO DEL USO DE LOS FRAMEWORS PHONEGAP Y JQUERY MOBILE EN APL...
GUIA DE LABORATORIO DEL USO DE LOS FRAMEWORS PHONEGAP Y JQUERY MOBILE EN APL...
 
Tutorial de jpa para windows usando net beans y mysql parte 1
Tutorial de jpa para windows usando net beans y mysql parte 1Tutorial de jpa para windows usando net beans y mysql parte 1
Tutorial de jpa para windows usando net beans y mysql parte 1
 
Tutorial git comandos rafael mirandaibanez
Tutorial git comandos rafael mirandaibanezTutorial git comandos rafael mirandaibanez
Tutorial git comandos rafael mirandaibanez
 
Laravel vc
Laravel vcLaravel vc
Laravel vc
 
ConexióN A Base De Datos En Netbeans
ConexióN A Base De Datos En NetbeansConexióN A Base De Datos En Netbeans
ConexióN A Base De Datos En Netbeans
 
Eclipse para novatos java
Eclipse para novatos javaEclipse para novatos java
Eclipse para novatos java
 
Reportes
ReportesReportes
Reportes
 
Tutorial net beans
Tutorial net beansTutorial net beans
Tutorial net beans
 
Crear una base de datos mysql con un script de sql
Crear una base de datos mysql con un script de sqlCrear una base de datos mysql con un script de sql
Crear una base de datos mysql con un script de sql
 
File
FileFile
File
 
Configurar entorno Android
Configurar entorno AndroidConfigurar entorno Android
Configurar entorno Android
 
Reporte Java con JasperReport
Reporte Java con JasperReportReporte Java con JasperReport
Reporte Java con JasperReport
 
Primeros pasos con Backbone js, por Xavier Aznar
Primeros pasos con Backbone js, por Xavier AznarPrimeros pasos con Backbone js, por Xavier Aznar
Primeros pasos con Backbone js, por Xavier Aznar
 
Power point report
Power point reportPower point report
Power point report
 
Manual Netbeans Bases Datos2
Manual Netbeans Bases Datos2Manual Netbeans Bases Datos2
Manual Netbeans Bases Datos2
 
Reportes en java con i report y netbeans
Reportes en java con i report y netbeansReportes en java con i report y netbeans
Reportes en java con i report y netbeans
 
Integración de Netbeans con Ireport y SQL Server
Integración de Netbeans con Ireport y SQL ServerIntegración de Netbeans con Ireport y SQL Server
Integración de Netbeans con Ireport y SQL Server
 
Ruby on Rails Workshop
Ruby on Rails WorkshopRuby on Rails Workshop
Ruby on Rails Workshop
 
Tutorial eclipse
Tutorial eclipseTutorial eclipse
Tutorial eclipse
 

Destacado

The Art Of The Titles Reseach
The Art Of The Titles ReseachThe Art Of The Titles Reseach
The Art Of The Titles Reseach
Kiera_Herbert
 
Shooting schedule
Shooting schedule  Shooting schedule
Shooting schedule
Kiera_Herbert
 
Instalacion symfony2
Instalacion symfony2Instalacion symfony2
Instalacion symfony2
rmirandaibanez
 
Toyota presentation
Toyota presentationToyota presentation
Toyota presentation
Govind Kudambal
 
Questionnaire Results
Questionnaire ResultsQuestionnaire Results
Questionnaire Results
Kiera_Herbert
 
Evaluation Question Three- what have you learned from your audience feedback?
Evaluation Question Three- what have you learned from your audience feedback?Evaluation Question Three- what have you learned from your audience feedback?
Evaluation Question Three- what have you learned from your audience feedback?
Kiera_Herbert
 
Shots and angles
Shots and anglesShots and angles
Shots and angles
Kiera_Herbert
 
Completando blog
Completando blogCompletando blog
Completando blog
rmirandaibanez
 
The History of Music
The History of MusicThe History of Music
The History of Music
Kiera_Herbert
 
My music video idea
My music video ideaMy music video idea
My music video idea
Kiera_Herbert
 
Doctrine symfony
Doctrine symfonyDoctrine symfony
Doctrine symfony
rmirandaibanez
 
Local Citation Management
Local Citation ManagementLocal Citation Management
Local Citation Management
RepairShopMarketing
 
High Budget Institutions
High Budget InstitutionsHigh Budget Institutions
High Budget Institutions
Kiera_Herbert
 
850-0490-00 Rev A-Oscillatory MAP ABP Case Study
850-0490-00 Rev A-Oscillatory MAP ABP Case Study 850-0490-00 Rev A-Oscillatory MAP ABP Case Study
850-0490-00 Rev A-Oscillatory MAP ABP Case Study
Christina Mason
 

Destacado (14)

The Art Of The Titles Reseach
The Art Of The Titles ReseachThe Art Of The Titles Reseach
The Art Of The Titles Reseach
 
Shooting schedule
Shooting schedule  Shooting schedule
Shooting schedule
 
Instalacion symfony2
Instalacion symfony2Instalacion symfony2
Instalacion symfony2
 
Toyota presentation
Toyota presentationToyota presentation
Toyota presentation
 
Questionnaire Results
Questionnaire ResultsQuestionnaire Results
Questionnaire Results
 
Evaluation Question Three- what have you learned from your audience feedback?
Evaluation Question Three- what have you learned from your audience feedback?Evaluation Question Three- what have you learned from your audience feedback?
Evaluation Question Three- what have you learned from your audience feedback?
 
Shots and angles
Shots and anglesShots and angles
Shots and angles
 
Completando blog
Completando blogCompletando blog
Completando blog
 
The History of Music
The History of MusicThe History of Music
The History of Music
 
My music video idea
My music video ideaMy music video idea
My music video idea
 
Doctrine symfony
Doctrine symfonyDoctrine symfony
Doctrine symfony
 
Local Citation Management
Local Citation ManagementLocal Citation Management
Local Citation Management
 
High Budget Institutions
High Budget InstitutionsHigh Budget Institutions
High Budget Institutions
 
850-0490-00 Rev A-Oscillatory MAP ABP Case Study
850-0490-00 Rev A-Oscillatory MAP ABP Case Study 850-0490-00 Rev A-Oscillatory MAP ABP Case Study
850-0490-00 Rev A-Oscillatory MAP ABP Case Study
 

Similar a Doctrine symfony

Conociendo el Patron Modelo Vista Controlador
Conociendo el Patron   Modelo Vista ControladorConociendo el Patron   Modelo Vista Controlador
Conociendo el Patron Modelo Vista Controlador
lissette_torrealba
 
Vistiendo a WordPress
Vistiendo a WordPressVistiendo a WordPress
Vistiendo a WordPress
Lorena Fernández
 
WPF Series - 01
WPF Series - 01WPF Series - 01
WPF Series - 01
kazcorp
 
Creación de un sitio web en wordpress
Creación de un sitio web en wordpressCreación de un sitio web en wordpress
Creación de un sitio web en wordpress
Milton González
 
Guia basica de ruby on rails
Guia basica de ruby on railsGuia basica de ruby on rails
Guia basica de ruby on rails
roberthp09
 
Hands on Lab: Almacenamiento local con base de datos, launchers y choosers
Hands on Lab: Almacenamiento local con base de datos, launchers y choosersHands on Lab: Almacenamiento local con base de datos, launchers y choosers
Hands on Lab: Almacenamiento local con base de datos, launchers y choosers
Sorey García
 
Practica Web Sesión 5
Practica Web Sesión 5Practica Web Sesión 5
Practica Web Sesión 5
AdalbertoBarajasCuri
 
Mi app-asp-net-mvc2
Mi app-asp-net-mvc2Mi app-asp-net-mvc2
Mi app-asp-net-mvc2
Enrique Valdez
 
Como crear blog
Como crear blogComo crear blog
Como crear blog
René Domínguez
 
Computación avanzada en java cert
Computación avanzada en java certComputación avanzada en java cert
Computación avanzada en java cert
Maestros Online
 
Alojar un dominio en servidor propio e instalar Wordpress
Alojar un dominio en servidor propio e instalar WordpressAlojar un dominio en servidor propio e instalar Wordpress
Alojar un dominio en servidor propio e instalar Wordpress
MJ Cachón Yáñez
 
Funciones
FuncionesFunciones
Funciones
Hector Ortiz
 
Linq to sql 8
Linq to sql 8Linq to sql 8
Linq to sql 8
jcfarit
 
Mvc
MvcMvc
APIREST LARAVEL Y PHP.pptx
APIREST LARAVEL Y PHP.pptxAPIREST LARAVEL Y PHP.pptx
APIREST LARAVEL Y PHP.pptx
MarlonAlbertoGalvis
 
Funciones definidas por_el_usuario_y_variables_superglobales
Funciones definidas por_el_usuario_y_variables_superglobalesFunciones definidas por_el_usuario_y_variables_superglobales
Funciones definidas por_el_usuario_y_variables_superglobales
CarlosUribe93
 
Instructivo themewordpress
Instructivo themewordpressInstructivo themewordpress
Instructivo themewordpress
Hernán Alejandro Roa Reyes
 
Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...
Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...
Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...
Corporacion de Industrias Tecnologicas S.A.
 
Webbrowser de vb 6.0 y vb.net
Webbrowser de vb 6.0 y vb.netWebbrowser de vb 6.0 y vb.net
Webbrowser de vb 6.0 y vb.net
adezhiz
 
Aplicación abc. asp net mvc 3
Aplicación abc. asp net mvc 3Aplicación abc. asp net mvc 3
Aplicación abc. asp net mvc 3
jose luis barrientos
 

Similar a Doctrine symfony (20)

Conociendo el Patron Modelo Vista Controlador
Conociendo el Patron   Modelo Vista ControladorConociendo el Patron   Modelo Vista Controlador
Conociendo el Patron Modelo Vista Controlador
 
Vistiendo a WordPress
Vistiendo a WordPressVistiendo a WordPress
Vistiendo a WordPress
 
WPF Series - 01
WPF Series - 01WPF Series - 01
WPF Series - 01
 
Creación de un sitio web en wordpress
Creación de un sitio web en wordpressCreación de un sitio web en wordpress
Creación de un sitio web en wordpress
 
Guia basica de ruby on rails
Guia basica de ruby on railsGuia basica de ruby on rails
Guia basica de ruby on rails
 
Hands on Lab: Almacenamiento local con base de datos, launchers y choosers
Hands on Lab: Almacenamiento local con base de datos, launchers y choosersHands on Lab: Almacenamiento local con base de datos, launchers y choosers
Hands on Lab: Almacenamiento local con base de datos, launchers y choosers
 
Practica Web Sesión 5
Practica Web Sesión 5Practica Web Sesión 5
Practica Web Sesión 5
 
Mi app-asp-net-mvc2
Mi app-asp-net-mvc2Mi app-asp-net-mvc2
Mi app-asp-net-mvc2
 
Como crear blog
Como crear blogComo crear blog
Como crear blog
 
Computación avanzada en java cert
Computación avanzada en java certComputación avanzada en java cert
Computación avanzada en java cert
 
Alojar un dominio en servidor propio e instalar Wordpress
Alojar un dominio en servidor propio e instalar WordpressAlojar un dominio en servidor propio e instalar Wordpress
Alojar un dominio en servidor propio e instalar Wordpress
 
Funciones
FuncionesFunciones
Funciones
 
Linq to sql 8
Linq to sql 8Linq to sql 8
Linq to sql 8
 
Mvc
MvcMvc
Mvc
 
APIREST LARAVEL Y PHP.pptx
APIREST LARAVEL Y PHP.pptxAPIREST LARAVEL Y PHP.pptx
APIREST LARAVEL Y PHP.pptx
 
Funciones definidas por_el_usuario_y_variables_superglobales
Funciones definidas por_el_usuario_y_variables_superglobalesFunciones definidas por_el_usuario_y_variables_superglobales
Funciones definidas por_el_usuario_y_variables_superglobales
 
Instructivo themewordpress
Instructivo themewordpressInstructivo themewordpress
Instructivo themewordpress
 
Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...
Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...
Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...
 
Webbrowser de vb 6.0 y vb.net
Webbrowser de vb 6.0 y vb.netWebbrowser de vb 6.0 y vb.net
Webbrowser de vb 6.0 y vb.net
 
Aplicación abc. asp net mvc 3
Aplicación abc. asp net mvc 3Aplicación abc. asp net mvc 3
Aplicación abc. asp net mvc 3
 

Más de rmirandaibanez

Instalación Android Studio
Instalación Android StudioInstalación Android Studio
Instalación Android Studio
rmirandaibanez
 
Tutorial git comandos
Tutorial git comandosTutorial git comandos
Tutorial git comandos
rmirandaibanez
 
Control de versiones en eclipse
Control de versiones en eclipseControl de versiones en eclipse
Control de versiones en eclipse
rmirandaibanez
 
Control de versiones en eclipse
Control de versiones en eclipseControl de versiones en eclipse
Control de versiones en eclipse
rmirandaibanez
 
Sisinf practica1 requerimientos_so
Sisinf practica1 requerimientos_soSisinf practica1 requerimientos_so
Sisinf practica1 requerimientos_so
rmirandaibanez
 
Caso transformacion modelo ei modelo relacional
Caso transformacion modelo ei   modelo relacionalCaso transformacion modelo ei   modelo relacional
Caso transformacion modelo ei modelo relacional
rmirandaibanez
 
Reglas conversión modelo relacional esquema
Reglas conversión modelo relacional esquemaReglas conversión modelo relacional esquema
Reglas conversión modelo relacional esquema
rmirandaibanez
 
Caso transformacion modelo EI - modelo relacional
Caso transformacion modelo EI - modelo relacionalCaso transformacion modelo EI - modelo relacional
Caso transformacion modelo EI - modelo relacional
rmirandaibanez
 
Caso transformacion modelo EI - Modelo relacional
Caso transformacion modelo EI - Modelo relacionalCaso transformacion modelo EI - Modelo relacional
Caso transformacion modelo EI - Modelo relacional
rmirandaibanez
 
Ejercicio vlsm complejo
Ejercicio vlsm complejoEjercicio vlsm complejo
Ejercicio vlsm complejo
rmirandaibanez
 
Reglas conversión modelo relacional
Reglas conversión modelo relacionalReglas conversión modelo relacional
Reglas conversión modelo relacional
rmirandaibanez
 
Instalación Eclipse. Básico
Instalación Eclipse. BásicoInstalación Eclipse. Básico
Instalación Eclipse. Básico
rmirandaibanez
 
Java - Metodos - Iterativo
Java - Metodos - IterativoJava - Metodos - Iterativo
Java - Metodos - Iterativo
rmirandaibanez
 
Documentación practica 2
Documentación practica 2Documentación practica 2
Documentación practica 2
rmirandaibanez
 
Cuestionarios SGBD y arboles B+
Cuestionarios SGBD y arboles B+Cuestionarios SGBD y arboles B+
Cuestionarios SGBD y arboles B+
rmirandaibanez
 
Introducción a lenguajes de programación
Introducción a lenguajes de programaciónIntroducción a lenguajes de programación
Introducción a lenguajes de programación
rmirandaibanez
 
Detalle de creacion de "Mi primera base de datos"
Detalle de creacion de "Mi primera base de datos"Detalle de creacion de "Mi primera base de datos"
Detalle de creacion de "Mi primera base de datos"
rmirandaibanez
 
Detalle de creación "Mi primera base de datos"
Detalle de creación "Mi primera base de datos"Detalle de creación "Mi primera base de datos"
Detalle de creación "Mi primera base de datos"
rmirandaibanez
 
Detalle de elaboración de "Mi primera base de datos"
Detalle de elaboración de "Mi primera base de datos"Detalle de elaboración de "Mi primera base de datos"
Detalle de elaboración de "Mi primera base de datos"
rmirandaibanez
 
1ª práctica Lenguaje Marcas. Ejemplo 1
1ª práctica Lenguaje Marcas. Ejemplo 11ª práctica Lenguaje Marcas. Ejemplo 1
1ª práctica Lenguaje Marcas. Ejemplo 1
rmirandaibanez
 

Más de rmirandaibanez (20)

Instalación Android Studio
Instalación Android StudioInstalación Android Studio
Instalación Android Studio
 
Tutorial git comandos
Tutorial git comandosTutorial git comandos
Tutorial git comandos
 
Control de versiones en eclipse
Control de versiones en eclipseControl de versiones en eclipse
Control de versiones en eclipse
 
Control de versiones en eclipse
Control de versiones en eclipseControl de versiones en eclipse
Control de versiones en eclipse
 
Sisinf practica1 requerimientos_so
Sisinf practica1 requerimientos_soSisinf practica1 requerimientos_so
Sisinf practica1 requerimientos_so
 
Caso transformacion modelo ei modelo relacional
Caso transformacion modelo ei   modelo relacionalCaso transformacion modelo ei   modelo relacional
Caso transformacion modelo ei modelo relacional
 
Reglas conversión modelo relacional esquema
Reglas conversión modelo relacional esquemaReglas conversión modelo relacional esquema
Reglas conversión modelo relacional esquema
 
Caso transformacion modelo EI - modelo relacional
Caso transformacion modelo EI - modelo relacionalCaso transformacion modelo EI - modelo relacional
Caso transformacion modelo EI - modelo relacional
 
Caso transformacion modelo EI - Modelo relacional
Caso transformacion modelo EI - Modelo relacionalCaso transformacion modelo EI - Modelo relacional
Caso transformacion modelo EI - Modelo relacional
 
Ejercicio vlsm complejo
Ejercicio vlsm complejoEjercicio vlsm complejo
Ejercicio vlsm complejo
 
Reglas conversión modelo relacional
Reglas conversión modelo relacionalReglas conversión modelo relacional
Reglas conversión modelo relacional
 
Instalación Eclipse. Básico
Instalación Eclipse. BásicoInstalación Eclipse. Básico
Instalación Eclipse. Básico
 
Java - Metodos - Iterativo
Java - Metodos - IterativoJava - Metodos - Iterativo
Java - Metodos - Iterativo
 
Documentación practica 2
Documentación practica 2Documentación practica 2
Documentación practica 2
 
Cuestionarios SGBD y arboles B+
Cuestionarios SGBD y arboles B+Cuestionarios SGBD y arboles B+
Cuestionarios SGBD y arboles B+
 
Introducción a lenguajes de programación
Introducción a lenguajes de programaciónIntroducción a lenguajes de programación
Introducción a lenguajes de programación
 
Detalle de creacion de "Mi primera base de datos"
Detalle de creacion de "Mi primera base de datos"Detalle de creacion de "Mi primera base de datos"
Detalle de creacion de "Mi primera base de datos"
 
Detalle de creación "Mi primera base de datos"
Detalle de creación "Mi primera base de datos"Detalle de creación "Mi primera base de datos"
Detalle de creación "Mi primera base de datos"
 
Detalle de elaboración de "Mi primera base de datos"
Detalle de elaboración de "Mi primera base de datos"Detalle de elaboración de "Mi primera base de datos"
Detalle de elaboración de "Mi primera base de datos"
 
1ª práctica Lenguaje Marcas. Ejemplo 1
1ª práctica Lenguaje Marcas. Ejemplo 11ª práctica Lenguaje Marcas. Ejemplo 1
1ª práctica Lenguaje Marcas. Ejemplo 1
 

Último

El sueño del pongo análisis literario jajabdjaksbdjiswnndndjdkdbdbddnsnsnsndn...
El sueño del pongo análisis literario jajabdjaksbdjiswnndndjdkdbdbddnsnsnsndn...El sueño del pongo análisis literario jajabdjaksbdjiswnndndjdkdbdbddnsnsnsndn...
El sueño del pongo análisis literario jajabdjaksbdjiswnndndjdkdbdbddnsnsnsndn...
REYNALDOMORALES20
 
Programa academico de informatica biomedica II
Programa academico de informatica biomedica IIPrograma academico de informatica biomedica II
Programa academico de informatica biomedica II
mc24anrm1485
 
TRIPTICO DE LUIS DE GÓNGORA Y ARGOTE.docx
TRIPTICO DE LUIS DE GÓNGORA Y ARGOTE.docxTRIPTICO DE LUIS DE GÓNGORA Y ARGOTE.docx
TRIPTICO DE LUIS DE GÓNGORA Y ARGOTE.docx
ErikaNoriega11
 
EL NIÑO CON EL PIJAMA DE RAYAS - Final (3).docx
EL NIÑO CON EL PIJAMA DE RAYAS - Final (3).docxEL NIÑO CON EL PIJAMA DE RAYAS - Final (3).docx
EL NIÑO CON EL PIJAMA DE RAYAS - Final (3).docx
MelanyCristinaBarboz
 
TECNICA RECOLACION DE DATOS METOSOLOGIA.pptx
TECNICA RECOLACION DE DATOS METOSOLOGIA.pptxTECNICA RECOLACION DE DATOS METOSOLOGIA.pptx
TECNICA RECOLACION DE DATOS METOSOLOGIA.pptx
pazcastro13
 
SISTEMA SOLAR _20240706_130000_0000.pdf
SISTEMA SOLAR  _20240706_130000_0000.pdfSISTEMA SOLAR  _20240706_130000_0000.pdf
SISTEMA SOLAR _20240706_130000_0000.pdf
gabrieltenorio403
 
Organización de servicios ante dengue 15feb2024.pptx
Organización de servicios ante dengue 15feb2024.pptxOrganización de servicios ante dengue 15feb2024.pptx
Organización de servicios ante dengue 15feb2024.pptx
MartinEspinozaCarpio1
 
Negociación - escuela de negocios (1).ppt
Negociación - escuela de negocios (1).pptNegociación - escuela de negocios (1).ppt
Negociación - escuela de negocios (1).ppt
lina100053
 
La Ética de Immanuel Kant, filosofia-historia
La Ética de Immanuel Kant, filosofia-historiaLa Ética de Immanuel Kant, filosofia-historia
La Ética de Immanuel Kant, filosofia-historia
reginagarciafarias1
 
S-4_S_ Informe de servicio del campo.pdf
S-4_S_ Informe de servicio del campo.pdfS-4_S_ Informe de servicio del campo.pdf
S-4_S_ Informe de servicio del campo.pdf
torrerogasza
 
ARGUEDAS, ENTRE EL FUEGO Y EL AMOR.pdf.pdf
ARGUEDAS, ENTRE EL FUEGO Y EL AMOR.pdf.pdfARGUEDAS, ENTRE EL FUEGO Y EL AMOR.pdf.pdf
ARGUEDAS, ENTRE EL FUEGO Y EL AMOR.pdf.pdf
VanesaCS1
 
Girls Call Hyderabad 000XX00000 Provide Best And Top Girl Service And No1 in ...
Girls Call Hyderabad 000XX00000 Provide Best And Top Girl Service And No1 in ...Girls Call Hyderabad 000XX00000 Provide Best And Top Girl Service And No1 in ...
Girls Call Hyderabad 000XX00000 Provide Best And Top Girl Service And No1 in ...
mukeshagarwal5411
 
S14_s27 - Material.pptxncvbdfgn vbjxcvmnbnhjkjkhjlk
S14_s27 - Material.pptxncvbdfgn vbjxcvmnbnhjkjkhjlkS14_s27 - Material.pptxncvbdfgn vbjxcvmnbnhjkjkhjlk
S14_s27 - Material.pptxncvbdfgn vbjxcvmnbnhjkjkhjlk
hernamperuaqp
 
Girls Call Hyderabad 000XX00000 Provide Best And Top Girl Service And No1 in ...
Girls Call Hyderabad 000XX00000 Provide Best And Top Girl Service And No1 in ...Girls Call Hyderabad 000XX00000 Provide Best And Top Girl Service And No1 in ...
Girls Call Hyderabad 000XX00000 Provide Best And Top Girl Service And No1 in ...
mukeshagarwal5411
 
ABORTO-Una mirada ética al dilema de nuestro tiempo.pptx
ABORTO-Una mirada ética al dilema de nuestro tiempo.pptxABORTO-Una mirada ética al dilema de nuestro tiempo.pptx
ABORTO-Una mirada ética al dilema de nuestro tiempo.pptx
mjgonzales2789
 
El jefe lectura de telenovelsa para leer
El jefe lectura de telenovelsa para leerEl jefe lectura de telenovelsa para leer
El jefe lectura de telenovelsa para leer
rubelleonel1
 
RESIDUOS SEM 12.pdfRESIDUOS SEM 12.pdf RESIDUOS SEM 12.pdf
RESIDUOS SEM 12.pdfRESIDUOS SEM 12.pdf RESIDUOS SEM 12.pdfRESIDUOS SEM 12.pdfRESIDUOS SEM 12.pdf RESIDUOS SEM 12.pdf
RESIDUOS SEM 12.pdfRESIDUOS SEM 12.pdf RESIDUOS SEM 12.pdf
DiegoAlfonsoOrdoezTo
 
CLASE 6 NEGOC. MANEJO CONFLICTOS. A.2024-A.2024.pptx
CLASE 6 NEGOC. MANEJO CONFLICTOS. A.2024-A.2024.pptxCLASE 6 NEGOC. MANEJO CONFLICTOS. A.2024-A.2024.pptx
CLASE 6 NEGOC. MANEJO CONFLICTOS. A.2024-A.2024.pptx
naarmijosde
 
Presentacion lenguaje, lengua y habla.pptx
Presentacion lenguaje, lengua y habla.pptxPresentacion lenguaje, lengua y habla.pptx
Presentacion lenguaje, lengua y habla.pptx
matoscuevaswalinanto
 
2023-01-OBSAN-TESIS-GRADO-NUT-COSUMO-ALIMENTOS-Y-SITUACION-SAN-EN-HOGARES-HN.pdf
2023-01-OBSAN-TESIS-GRADO-NUT-COSUMO-ALIMENTOS-Y-SITUACION-SAN-EN-HOGARES-HN.pdf2023-01-OBSAN-TESIS-GRADO-NUT-COSUMO-ALIMENTOS-Y-SITUACION-SAN-EN-HOGARES-HN.pdf
2023-01-OBSAN-TESIS-GRADO-NUT-COSUMO-ALIMENTOS-Y-SITUACION-SAN-EN-HOGARES-HN.pdf
indiansept18
 

Último (20)

El sueño del pongo análisis literario jajabdjaksbdjiswnndndjdkdbdbddnsnsnsndn...
El sueño del pongo análisis literario jajabdjaksbdjiswnndndjdkdbdbddnsnsnsndn...El sueño del pongo análisis literario jajabdjaksbdjiswnndndjdkdbdbddnsnsnsndn...
El sueño del pongo análisis literario jajabdjaksbdjiswnndndjdkdbdbddnsnsnsndn...
 
Programa academico de informatica biomedica II
Programa academico de informatica biomedica IIPrograma academico de informatica biomedica II
Programa academico de informatica biomedica II
 
TRIPTICO DE LUIS DE GÓNGORA Y ARGOTE.docx
TRIPTICO DE LUIS DE GÓNGORA Y ARGOTE.docxTRIPTICO DE LUIS DE GÓNGORA Y ARGOTE.docx
TRIPTICO DE LUIS DE GÓNGORA Y ARGOTE.docx
 
EL NIÑO CON EL PIJAMA DE RAYAS - Final (3).docx
EL NIÑO CON EL PIJAMA DE RAYAS - Final (3).docxEL NIÑO CON EL PIJAMA DE RAYAS - Final (3).docx
EL NIÑO CON EL PIJAMA DE RAYAS - Final (3).docx
 
TECNICA RECOLACION DE DATOS METOSOLOGIA.pptx
TECNICA RECOLACION DE DATOS METOSOLOGIA.pptxTECNICA RECOLACION DE DATOS METOSOLOGIA.pptx
TECNICA RECOLACION DE DATOS METOSOLOGIA.pptx
 
SISTEMA SOLAR _20240706_130000_0000.pdf
SISTEMA SOLAR  _20240706_130000_0000.pdfSISTEMA SOLAR  _20240706_130000_0000.pdf
SISTEMA SOLAR _20240706_130000_0000.pdf
 
Organización de servicios ante dengue 15feb2024.pptx
Organización de servicios ante dengue 15feb2024.pptxOrganización de servicios ante dengue 15feb2024.pptx
Organización de servicios ante dengue 15feb2024.pptx
 
Negociación - escuela de negocios (1).ppt
Negociación - escuela de negocios (1).pptNegociación - escuela de negocios (1).ppt
Negociación - escuela de negocios (1).ppt
 
La Ética de Immanuel Kant, filosofia-historia
La Ética de Immanuel Kant, filosofia-historiaLa Ética de Immanuel Kant, filosofia-historia
La Ética de Immanuel Kant, filosofia-historia
 
S-4_S_ Informe de servicio del campo.pdf
S-4_S_ Informe de servicio del campo.pdfS-4_S_ Informe de servicio del campo.pdf
S-4_S_ Informe de servicio del campo.pdf
 
ARGUEDAS, ENTRE EL FUEGO Y EL AMOR.pdf.pdf
ARGUEDAS, ENTRE EL FUEGO Y EL AMOR.pdf.pdfARGUEDAS, ENTRE EL FUEGO Y EL AMOR.pdf.pdf
ARGUEDAS, ENTRE EL FUEGO Y EL AMOR.pdf.pdf
 
Girls Call Hyderabad 000XX00000 Provide Best And Top Girl Service And No1 in ...
Girls Call Hyderabad 000XX00000 Provide Best And Top Girl Service And No1 in ...Girls Call Hyderabad 000XX00000 Provide Best And Top Girl Service And No1 in ...
Girls Call Hyderabad 000XX00000 Provide Best And Top Girl Service And No1 in ...
 
S14_s27 - Material.pptxncvbdfgn vbjxcvmnbnhjkjkhjlk
S14_s27 - Material.pptxncvbdfgn vbjxcvmnbnhjkjkhjlkS14_s27 - Material.pptxncvbdfgn vbjxcvmnbnhjkjkhjlk
S14_s27 - Material.pptxncvbdfgn vbjxcvmnbnhjkjkhjlk
 
Girls Call Hyderabad 000XX00000 Provide Best And Top Girl Service And No1 in ...
Girls Call Hyderabad 000XX00000 Provide Best And Top Girl Service And No1 in ...Girls Call Hyderabad 000XX00000 Provide Best And Top Girl Service And No1 in ...
Girls Call Hyderabad 000XX00000 Provide Best And Top Girl Service And No1 in ...
 
ABORTO-Una mirada ética al dilema de nuestro tiempo.pptx
ABORTO-Una mirada ética al dilema de nuestro tiempo.pptxABORTO-Una mirada ética al dilema de nuestro tiempo.pptx
ABORTO-Una mirada ética al dilema de nuestro tiempo.pptx
 
El jefe lectura de telenovelsa para leer
El jefe lectura de telenovelsa para leerEl jefe lectura de telenovelsa para leer
El jefe lectura de telenovelsa para leer
 
RESIDUOS SEM 12.pdfRESIDUOS SEM 12.pdf RESIDUOS SEM 12.pdf
RESIDUOS SEM 12.pdfRESIDUOS SEM 12.pdf RESIDUOS SEM 12.pdfRESIDUOS SEM 12.pdfRESIDUOS SEM 12.pdf RESIDUOS SEM 12.pdf
RESIDUOS SEM 12.pdfRESIDUOS SEM 12.pdf RESIDUOS SEM 12.pdf
 
CLASE 6 NEGOC. MANEJO CONFLICTOS. A.2024-A.2024.pptx
CLASE 6 NEGOC. MANEJO CONFLICTOS. A.2024-A.2024.pptxCLASE 6 NEGOC. MANEJO CONFLICTOS. A.2024-A.2024.pptx
CLASE 6 NEGOC. MANEJO CONFLICTOS. A.2024-A.2024.pptx
 
Presentacion lenguaje, lengua y habla.pptx
Presentacion lenguaje, lengua y habla.pptxPresentacion lenguaje, lengua y habla.pptx
Presentacion lenguaje, lengua y habla.pptx
 
2023-01-OBSAN-TESIS-GRADO-NUT-COSUMO-ALIMENTOS-Y-SITUACION-SAN-EN-HOGARES-HN.pdf
2023-01-OBSAN-TESIS-GRADO-NUT-COSUMO-ALIMENTOS-Y-SITUACION-SAN-EN-HOGARES-HN.pdf2023-01-OBSAN-TESIS-GRADO-NUT-COSUMO-ALIMENTOS-Y-SITUACION-SAN-EN-HOGARES-HN.pdf
2023-01-OBSAN-TESIS-GRADO-NUT-COSUMO-ALIMENTOS-Y-SITUACION-SAN-EN-HOGARES-HN.pdf
 

Doctrine symfony

  • 1. TRABAJO CON BASE DE DATOS: DOCTRINE Trabajaremos con anotaciones (podríamos optar también por ficheros yml, php o xml). El primer paso es configurar la base de datos (recordar que durante la instalación de Symfony se establecieron los parámetros por defecto), en la ruta: El siguiente paso es crear una base de datos para el proyecto, se puede hacer desde phpmyadmin o desde consola: Symfony permite crear las clases a partir del modelo relacional (ingeniería inversa). Pero vamos a hacerlo a la inversa, creando las clases y posteriormente el modelo relacional.
  • 2. Tenemos que crear la entidad Blog.php dentro de la carpeta Entity: Y ahora para crear el esquema en base a esa clase: Y observamos que se ha creado la tabla:
  • 3. Y si volvemos a abrir la clase Blog.php observamos que se han creado automáticamente los setters y los getters. El siguiente paso es generar la ruta:
  • 4. Vamos a crear un nuevo controlador, de manera que trabajaremos con un controlador para cada entidad: El siguiente paso, una vez mas, es crear la vista, en la carpeta Resources/views/Blog (previamente creada).
  • 5. El siguiente paso es instalar el paquete de Doctrine DataFixtures, para poder finalmente persistir datos en la base de datos, donde introduciremos las diferentes entradas de la base de datos. Para ello: Hay que instalar también el paquete Fixtures, introducimos estas dos líneas en composer.json: Actualizamos: Ahora tenemos que tener también los paquetes “fixtures”:
  • 6. Lo siguientes es registrar los paquetes en el appkernel. Introducimos estas tres líneas: Ahora tenemos que añadir los accesorios (datos). Para ellos creamos el fichero BlogFixtures.php:
  • 7. Y lo llevamos a la carpeta (creada previamente): Hay que modificar la clase BlogFixtures.php para añadir dos nuevos “uses”, extender la clase de AbstractFixture y modificar el parámetro recibido por la funcion load: Si todo ha ido bien al ejecutar este comando para cargar los datos se recibirá el siguiente mensaje: Ahora probamos a introducir en la URL del navegador: Tras esto volvemos a cargar esa URL y veremos que entramos en un post con contenido al que aún le falta la imagen:
  • 8. Tras añadir imágenes a la carpeta /web/images, y modificar el archivo screen.css en la carpeta css (que ya teníamos creada anteriormente), el resultado es el siguiente: Ahora hay que modificar el archivo Blog.php, para registrar sellos temporales del momento de la persistencia en la base de datos:
  • 9. Introducimos este constructor y función para que la aplicación la ejecute antes de hacer persistentes los datos en la base de datos (@ORMPreUpdate): Y volvemos a cargar los datos:
  • 10. A continuación tenemos que cambiar el index del Page (Blogger/BlogBundle/Resources/views/Page/index.html.twig) para poder mostrar todas las entradas en la página principal. Vamos ahora al PageController (Blogger/BlogBundle/Controller/PageController.php):
  • 11. Ahora vemos que en nuestra home se enumeran todas las entradas. Ahora vamos a la entidad Blog (Blog.php), vemos que la función getBlog devuelve blog. Tenemos que modificarlo de la siguiente manera: Esto sirve para poder determinar o limitar el número de caracteres de cada entrada que sacamos en el listado del home. Tras esto volvemos a la plantilla index.html.twig, y en la llamada a la entidad Blog podemos pasarle como parámetro la longitud de la entrada.
  • 12. Ahora vamos a separar la consulta doctrine del controlador, para poder reutilizarla en cualquier momento sin tener que acceder al controlador. Para ello trabajaremos con repositorios, un script donde pondremos todas las consultar doctrine. Dentro de la carpeta Entity creamos una carpeta Repository y dentro creamos BlogRepository.php con el siguiente contenido:
  • 13. Y ahora cambiamos en el PageController la consulta por una llamada al repositorio:
  • 14. Ahora vamos a trabajar los comentarios. Como un comentario es de un blog pero un blog tiene muchos comentarios esto se trabaja con anotaciones. En primer lugar creo la entidad Comment en la carpeta Entity.
  • 15. Y en la entidad Blog: php bin/console doctrine:generate:entities Blogger Tras esto me ha debido crear todos los métodos de acceso en la clase Comment. Hacemos persistentes las clases en la base de datos, lo haremos con migraciones.
  • 16. Y veremos que se ha generado automáticamente la tabla de comentarios en nuestra base de datos: Lo siguiente es cargar los comentarios. Para ello tenemos que llevarnos el fichero a DataFixtures y después hacer un load.
  • 17. Añadiendo al final también:
  • 18. Ahora en la clase CommentRepository.php (creada automaticamente) añadimos: Ahora en BlogController.php cambiamos:
  • 19. Ahora cambiamos la plantilla show.html.twig: Creamos en la carpeta views otra carpeta llamada Comment, con un archivo index en su interior con el siguiente contenido: Y ya podremos ver los comentarios en cada entrada:
  • 20. Ahora vamos a implementar la funcionalidad para añadir comentarios. Para esto tenemos que generar un formulario con Doctrine. Se debe haber creado la clase con el siguiente contenido: Necesitaremos un controlador para manejar este formulario. Para ello añadimos una nueva ruta:
  • 21. Ahora tenemos que crear el CommentController.php: Nota: Los parámetros de this→createForm en funcion createAction deben ser igual que en newAction.
  • 22. Ahora creamos la vista form.html.twig en la ruta especificada: Ahora creamos la vista create.html.twig: Ahora hay que modificar el show.html.twig:
  • 23. Y ya podemos añadir comentarios: Podemos hacer que la vista de cada entrada en el home ofrezca info relativa al número de comentarios que tiene esta entrada, e incluso convertir ese número en un enlace que nos lleve directamente a esos comentarios en la entrada. Para ello tenemos que modificar el index.html.twig del views/Page: Vemos como dentro del href de la etiqueta <a> indicamos la ruta de la entrada del blog e incluso con “#comments” indicamos que el navegador haga scroll vertical hasta llegar a la zona de los comentarios. Posteriormente, añadimos el texto de la etiqueta <a>, que será la longitud del array de comentarios.
  • 24. Ahora vamos a implementar la barra lateral. Para ello añadimos en BlogRepository.php: Y también: Ahora vamos al PageController.php y añadimos:
  • 25. Creamos sidebar.css en web/css con el siguiente contenido: Creamos en Resources/views/Page el sidebar.html.twig: Y por último en el layout.html.twig:
  • 26. Finalmente tenemos: Ahora para añadir a la barra lateral los comentarios más recientes tenemos que hacer lo siguiente: Añadimos en el CommentRepository.php: Ahora vamos al PageController.php y modificamos el sidebarAction:
  • 27. Ahora en el config.yml (dentro de app/config/) incluimos: En el sidebar.html.twig añadimos: Y vemos que el blog ha cambiado: