Inicio » Blog » Laravel

21 enero, 2020

Crear urls amigables

Para generar una url amigable se crea un campo adicional llamado slug a nuestro modelo, este campo guardará el texto o url amigable, veamos el tutorial

Crear urls amigables

Suscríbete a nuestro canal en Youtube

Suscríbirse

¿Qué es una Url Amigable?

Una url amigable es una ruta limpia que solo lleva palabras separadas por guiones medios, omitiendo números y caracteres extraños como tildes, ñ, etc. esta configuración ayuda a la indexación por parte de Google, es un factor para el posicionamiento web, además ayuda al usuario a interpretar mucho más rápido en que lugar o sección se encuentra navegando en una página web. Un ejemplo de compración sencillo puede ser:

Diferencian entre Urls no amigables VS urls amigables.

Urls no amigables:

  • http://codea.app/?page=productos  ...... aqui nos refiere la página productos
  • http://codea.app/?page=productos&id=1.... aqui nos refiere la página de un producto identificado por el id.

Urls amigables:

  • https://codea.app/productos  ... pagina productos
  • https://codea.app/productos/naranja ..... pagina que pertenece al producto naranja en vez de llevar un id

Si nos fijamos la primera y la segunda llevarán a la misma página, pero la segunda se entiende mucho más facil, ademas de ser corta, ahorramos muchos bytes.,

Pues bien Laravel nos provee de un sistema de rutas muy fácil de usar, pero que pasa cuando tenemos una lista de productos donde cada modelo tiene un id único. Veamos nuestra tabla

http://codea.app/productos/1

http://codea.app/productos/2

Esto puede ser una url amigable pero no es entendible, 

Empecemos:

En nuestro modelo:

Debemos declarar y agregar el campo slug en nuestro modelo, como vemos en la siguiente línea de código:

protected $fillable =['slug','nombre','descripcion','urlfoto'];

En nuestra migración:

En el archivo de migración del modelo debemos declarar el tipo de dato y la longitud que tendrá e incluso como atributo podemos colocar que sea único. Veamos el código:

$table->string('slug',55)->unique();

En nuestra ruta:

En nuestra sistema de rutas debemos agregar la url donde declaramos una variable con el nombre producto

https://dominio.com/productos/{producto}

En nuestro controllador:

En nuestra vista:

 

 


Leido 4521 veces

Compartir link del tutorial con tus amigos


Aprende más sobre Laravel

Cursos de programación

Codea Codea App

México, Colombia, España, Venezuela, Argentina, Bolivia, Perú

© Todos los derechos reservados Codea App | ...de frente al código!!! | 2020 - 2023