Saltar navegación

Activa JavaScript para disfrutar de los vídeos de la Mediateca.

Buscar con Doctrine - Contenido educativo

Ajuste de pantalla

El ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:

Subido el 4 de noviembre de 2020 por Amadeo M.

26 visualizaciones

Descargar la transcripción

Hasta ahora, solamente hemos estado accediendo a la información a través de su clave primaria, del ID en este caso. 00:00:01
Vamos a intentar buscar información utilizando otros campos. 00:00:07
En este caso, en Product, solamente tenemos el ID y el Name. 00:00:12
Vamos a intentar buscar por Name. 00:00:16
Bueno, vamos a partir de este listar productos PHP, vamos a copiarlo, vamos a cambiar el nombre 00:00:19
para poner aquí por nombre 00:00:27
y vamos a cargarlo. Ya lo tenemos cargado aquí por nombre 00:00:31
y utilizamos el repositorio. Hasta aquí estábamos 00:00:36
utilizando los productos y buscábamos todos. Ahora lo que 00:00:39
vamos a intentar es buscar aquellos por el campo 00:00:44
nombre y que el campo nombre, voy a ponerlo 00:00:49
como tiene que ser, y que el campo nombre valga 00:00:52
pues el valor que sea, ¿de acuerdo? Con lo cual aquí voy a pedir, voy a requerir que el name que me incluya sea el primer argumento, ¿de acuerdo? 00:00:57
Vamos a ver si esto se pide así porque efectivamente me falta un dólar, me faltaba a mí algo, no veía yo claro aquí el primer argumento. 00:01:09
Bueno, sabiendo esto, pues yo ahora mismo debería buscar todos los productos que yo nombre sea como este. 00:01:17
Voy a ver que tengo en este momento, esto ya está salvado, lo salvo, voy a ver que tengo yo en este momento en mi base de datos. 00:01:25
He estado jugando un rato antes de preparar esto y entonces, pues bueno, efectivamente tengo aquí vaso, tornillo, tuerca, teclado, otra vez tuerca. 00:01:35
Vamos a ver si yo busco ahora, voy a llamar a php, listar productos por nombre de vaso. 00:01:44
Vale, pues me aparece vaso. ¿Qué me ocurre si pongo tuerca? Pues que me aparecen los dos tuercas. Y si pongo algo que no existe, pues efectivamente no me aparece nada. Es decir, efectivamente me está recuperando todos los objetos cuyo campo es este. 00:01:52
pero hay algo que es muy interesante 00:02:13
existe una notación que dice 00:02:15
encuéntrame 00:02:17
voy a hacer una copia 00:02:18
de este fichero 00:02:21
para hacer lo que voy a hacer 00:02:22
entonces lo voy a llamarle listar 00:02:24
y no voy a creerlo 00:02:27
voy a llamarle 00:02:28
buscar 00:02:29
primer producto 00:02:32
por nombre 00:02:34
porque efectivamente lo que vamos a hacer 00:02:37
es que simplemente 00:02:39
nos busque el primero 00:02:40
que contenga esa información 00:02:42
para eso simplemente ponemos find one by 00:02:45
y el problema es que aquí ya no hay un bucle 00:02:47
aquí nos va a devolver solamente un producto 00:02:51
con lo cual vamos a quitar este bucle 00:02:53
y vamos a ver si efectivamente esto nos encuentra algo 00:02:56
vamos a ir a por ello 00:03:04
vamos a ejecutarlo 00:03:05
php buscar primer producto por nombre 00:03:07
se ha quedado un copy por ahí, bueno, al renombrar se ha quedado ese nombre 00:03:13
pero este fichero está funcionando, iré a buscar tuerca 00:03:17
y efectivamente me sale la primera tuerca que había 00:03:21
había un montón y aquí me sale eso, hay mucho cuidado 00:03:24
en este código porque no estamos comprobando si product puede ser null 00:03:29
¿de acuerdo? ¿qué ocurriría si ahora mismo paso esto a algo que no existe? 00:03:33
algo que no existe porque se va a romper casi seguro 00:03:37
¿De acuerdo? Va a intentar hacer un getid de un objeto que es null y no va a poder, con lo cual nos faltaría en este trozo comprobar que el producto exista, que el producto nos devuelva algo. 00:03:40
¿De acuerdo? Con que hiciéramos esto, al menos, al menos, si volvemos a ejecutar no existe, no mostraría nada y en el caso de que sí funcione, por ejemplo con vaso, pues funcionaría. 00:03:55
Entonces aquí ya podemos ver cómo buscar información de algún tipo que tengamos dentro. 00:04:14
Un caso más complicado es que quisiéramos buscar por condiciones. Aquí estamos buscando por algo que es exactamente igual. 00:04:21
Para eso tendríamos que echar mano del equivalente SQL dentro de este lenguaje de Doctrine que se llama DQL. Vamos a ver cómo lo podríamos hacer. Voy a copiar este ficherito otra vez. Por cierto, voy a poner unos nombres un poco más adecuados porque se me han quedado ahí unos nombres horribles. 00:04:30
¿Vale? Entonces, tenemos este ficherito, que es esta información que teníamos aquí del font-by, este que es el copy, que lo teníamos aquí, y ahora vamos a hacer y a llamarle por nombre de QL. 00:04:50
Muy bien. Entonces, ¿cómo lo podríamos hacer esto? Bueno, nosotros, en este caso, hemos hecho esta información de esta manera. 00:05:10
Lo que debemos hacer, vamos a ir al pequeño manual y un pequeño ejemplo, es hacer una estructura de este tipo. Me la llevo al programita para un poco analizarlo. 00:05:19
¿Qué es lo que estamos haciendo aquí? Pues un select de una información y obteniendo los resultados. Y eso es lo que voy a mostrar. Bueno, pues vamos a ver lo que es esto. En primer lugar, eso que aparece ahí es nuestro entity manager. 00:05:33
Manager, en el cual creamos un query. 00:05:49
Nuestro query es select, select cualquier objeto, vamos a llamarle p, 00:05:55
ya que vamos a trabajar con producto, del producto, creamos p al producto, 00:06:01
donde, por ejemplo, pongamos que p.id sea mayor que 5. 00:06:08
Esto sería una información válida, ¿de acuerdo? 00:06:16
y aquí vamos a obtener todos estos productos, todos estos productos de esta query que acabamos de generar. 00:06:19
Con lo cual borramos todo esto y vamos a ver si efectivamente de esta manera obtenemos esa información que queremos. 00:06:31
Vamos a llamar a PHP, listar productos por nombre de QL y efectivamente, ahora veremos qué problema hay aquí, por de QL efectivamente aquí aparece 6 tuercas. 00:06:39
Este problema aparece simplemente porque hemos dejado esta línea de aquí que no tiene sentido. 00:06:56
6 tuerca es el único que aparece con 6. 00:07:02
Si listáramos todos los productos que hay, veríamos que es el único que es mayor que 5. 00:07:05
¿De acuerdo? 00:07:15
Bueno, pues este sería el método de hacerlo, con lo cual habría que conocer un poquito más de DQL. 00:07:17
Lo que sí quiero en este momento es resaltar que aquí no estamos realmente con un select de SQL estándar, base de datos relacionales, sino que estamos seleccionando objetos P de la entidad product que se cumple que el campo id es mayor que 5. 00:07:21
Es decir, lo que devuelve son objetos completos. 00:07:39
Idioma/s:
es
Autor/es:
Amadeo Mora
Subido por:
Amadeo M.
Licencia:
Dominio público
Visualizaciones:
26
Fecha:
4 de noviembre de 2020 - 19:41
Visibilidad:
Público
Centro:
IES CLARA DEL REY
Duración:
07′ 44″
Relación de aspecto:
1.78:1
Resolución:
1364x768 píxeles
Tamaño:
39.23 MBytes

Del mismo autor…

Ver más del mismo autor


EducaMadrid, Plataforma Educativa de la Comunidad de Madrid

Plataforma Educativa EducaMadrid