El enrutamiento es un concepto central en Laravel y funciona de manera un poco diferente a algunos de los marcos del pasado. El sistema de Laravel Route es muy flexible y, aunque un poco complicado al principio, una vez que comprendas bien los fundamentos, te preguntarás cómo viviste sin él todo el tiempo. Sin más preámbulos, ¡profundicemos en Laravel Routes!


Configurar un dominio de desarrollo personalizado

Hace mucho tiempo cuando, durante el tutorial Instalar Laravel en Windows, creamos una aplicación llamada blog ejecutando un comando como:composer create-project laravel/laravel blog --prefer-dist

Lo que eso hizo por nosotros fue crear nuestro proyecto C:wampwwwblogy para poder ver nuestra aplicación en un navegador, tuvimos que visitar algo como http://localhost/blog/public/ Ahora, esto probablemente no sea ideal, acabas de instalar el marco de programación PHP más avanzado técnicamente disponible y estás cargando arriba http://localhost/blog/public/en el navegador para poder verla ?! Ah, no gracias . Vamos a configurar nuestro propio entorno de desarrollo. Configuraremos esto para que podamos presionar http://vegi.bity hacer que nuestra aplicación se cargue bien. Puedes elegir lo que más te guste para el tuyo, tal vez http://you.rocksi quieres.

  • Abra la aplicación Bloc de notas como administrador ( Todos los programas-> Accesorios-> haga clic con el botón derecho en 'Bloc de notas' y 'Ejecutar como administrador ). Vamos a editar nuestro hostsarchivo de Windows y no podrá guardar los cambios sin privilegios de administrador.
  • Busque la línea que dice 127.0.0.1 localhost y, justo después, agregue su (s) dominio (s) de desarrollo
    Guarde el hostsarchivo, cierre el archivo de hosts.

  • Navega C:wampbinapacheApache2.4.4confextray abre httpd-vhosts.confAl final del archivo, agregue:
    Guarde el httpd-vhosts.confarchivo.

  • Navegue C:wampbinapacheApache2.4.4confy abra httpd.conf Busque la línea que dice # Include conf/extra/httpd-vhosts.confy cámbiela quitando el # inicial así:
    Guarde el httpd.confarchivo.

  • Haga clic en el icono de wamp en la bandeja de tareas y seleccione Reiniciar todos los servicios .

Visita tu primera ruta personalizada de Laravel

¡Okay! Si todo salió bien, y tenemos algo como lo siguiente en nuestroroutes.phparchivo (ubicado enC:wampwwwblogapp). Casi parece similar a cómo Node.js maneja las rutas.

Deberíamos poder visitar http://you.rock/en su navegador y ser recibidos con: ¡ La primera Ruta Laravel!

Go shorty, es tu cumpleaños, vamos de fiesta como si fuera tu cumpleaños ...

Ejem ... Ok, eso es genial, tenemos una convención de nomenclatura genial configurada, así que ahora, sin importar el nombre de su proyecto cuando lo creó, podemos tener una URL realmente genial para nuestro entorno de desarrollo. ¡¡Adelante!!


Enrutamiento a cierres

La mayoría de los tutoriales hasta ahora han tratado con enrutamiento muy simple a cierres, que es realmente el primer paso para aprender Laravel. Entonces, cuando hemos estado haciendo esto todo el tiempo:

Lo que hemos estado haciendo es encaminarnos hacia los cierres. Esto es realmente genial y bastante útil. De hecho, al crear aplicaciones pequeñas, podría ser todo lo que necesitamos.

Acceso a los parámetros de ruta

Ahora que tenemos una configuración de enrutamiento realmente básica, comencemos a aceptar parámetros para nuestras rutas. Para hacer esto, podemos usar algo como este código:

Al visitar http://you.rock/mr/andersonveríamos algo como:

resultado: Misterrr anderson

Parámetros de ruta opcionales

Agregar un ?comodín y asignarlo nullal argumento de cierre permitirá que el parámetro sea opcional; de lo contrario, obtendrá un error si no incluye el parámetro.

Nota: Omitir ?nullgenerará una excepción al visitarhttp://you.rock/mr

Establecer valores de parámetros predeterminados

Visitando http://you.rock/mr

Produce: Misterrr Andersonnnnnn

Rutas y parámetros en acción

Esto es realmente genial. Ahora podemos usar nuestros nuevos poderes encontrados para combinar rutas con elocuentes para recuperar cosas de nuestra base de datos. Recuerde nuestro artículo de Relaciones de muchos a muchos en Laravel y hagamos algo mejor que simplemente dirigirnos a/

Configuremos una ruta para recuperar publicaciones de blog por etiqueta, si no se proporciona ninguna etiqueta, la estableceremos por defecto en 1.

Ahora podemos visitar cosas como http://you.rock/blogposts/taghttp://you.rock/blogposts/tag/1http://you.rock/blogposts/tag/2http://you.rock/blogposts/tag/3y obtenemos los resultados que buscamos.

¿Qué hay de obtener los valores por nombre o cadena en lugar de por id?

Bueno, ¡me alegro de que lo hayas preguntado! Cambiemos este código para que podamos pasar la identificación numérica * o * el nombre de la etiqueta en un formato de cadena:

¡Ahora puede visitar cualquiera de las siguientes rutas y obtener los resultados exactos que espera!
http://you.rock/blogposts/tag
http://you.rock/blogposts/tag/1
http://you.rock/blogposts/tag/2
http://you.rock/blogposts/tag/3
http://you.rock/blogposts/tag/laravel
http://you.rock/blogposts/tag/bootstrap
http://you.rock/blogposts/tag/windows

Por ejemplo, aquí está http://you.rock/blogposts/tag/laravel

Búsqueda por babosa

También podemos usar este método para buscar por slug, siempre que tengamos un slug en nuestra blogpoststabla. Nota: Deberá agregar uno ahora si desea probar esto.

Visitante:http://you.rock/blogposts/title/install-laravel-on-windows o http://you.rock/blogposts/title/4proporciona la publicación en cuestión.

Implemente restricciones en sus rutas

Tal vez no sea flexible y le gustaría forzar una variable en modo de bloqueo a sus usuarios. Tienes ese poder. Oblígalos a usar solo una identificación numérica. Lo que das, también puedes quitar:

Visitando: ¡http://you.rock/blogposts/title/install-laravel-on-windows ya no funcionará!

Visitando: ¡http://you.rock/blogposts/title/1 ya no funcionará!

¡Nota! También puede hacer esto globalmente usando Route::pattern('id', '[0-9]+');o en Route::pattern('id', '[A-Z-a-z]+');lugar de donde agregamos anteriormente.

Obtenga su verborrea correcta

Hasta ahora hemos estado usando el getverbo exclusivamente. ¡Hay más de un verbo para usar aunque el joven Laraveler! Lo hemos estado usando getdesde que esto es lo que se usa para capturar las solicitudes HTTP que hemos estado realizando a nuestras pequeñas aplicaciones.

Cada vez que un navegador web realiza una solicitud, lo hace con un verbo. getes el más común, ya que seamos sinceros, generalmente estamos obteniendo una página web para ver en Internet. No importa el sitio web que visite, la getsolicitud es lo que le permite ver una página web.

Además de la getsolicitud, el siguiente más común es el postpostse utiliza para enviar algunos datos con una solicitud. El caso de uso más común es enviar un formulario en una página web.

Así que además de Route::get();Route::post();laravel también proporciona Route::put();Route::delete();yRoute::any();

Todos los métodos enumerados aquí toman los mismos parámetros, lo que nos permite elegir cualquier verbo para la aplicación correcta. Estos son los inicios del enrutamiento RESTful . El enrutamiento RESTful será un tutorial completamente diferente, ya que se involucra un poco.

Parámetros a verbos

En todas nuestras solicitudes de obtención hasta ahora, le hemos estado entregando una cadena y un cierre. En un sentido genérico, se ve así:

No es más que dos parámetros separados por una coma. El stringes la URL a contrastar, y el cierre es simplemente una función anónima con un poco de acción a tomar en el interior de la misma. Consulte con Chuck Norris, me refiero a Douglas Crockford, para un ejercicio alucinante para comprender los cierres en todo su esplendor.


El enrutamiento para llevar

El enrutamiento en Laravel es el pegamento que lo mantiene todo unido. Al principio, con nuestras aplicaciones pequeñas, está bien usar enrutamiento explícito y enrutamiento a cierres. A medida que profundizamos en el enrutamiento, vamos a querer explorar realmente el enrutamiento RESTful y el enrutamiento con controladores en Laravel.