URLs únicas

Suscríbete para acceder a TODOS los cursos.

¡Puedes cancelar en cualquier momento! (Precios en USD)

o
Ó

44. URLs únicas

En esta lección vemos cómo permitir que se creen publicaciones con el mismo título pero que la url sea única para poderla diferenciar. En el proceso vemos varias formas de hacerlo, sus pros y sus contras.

Geremias L Escobar
Geremias L Escobar (1400 xp)
Genial, el unico que detalle es que al momento de actualizar el title no actualiza la URL, tal vez mas adelante se corrija eso 
Johan Mendoza
Johan Mendoza (1528 xp)
Está muy bueno Jorge y me sirvió mucho. Le hice algunas modificaciones y si a alguien le sirve aquí les dejo el código.
protected $fillable = ['slug', 'display_name'];

use Cacheable, CreatedAtAttribute;

public function posts() {
    return $this->hasMany(Post::class);
}

public static function create( array $attributes = [] ) {
    $category = static::query()->create( $attributes );

    $category->generateUniqueSlug();

    return $category;
}

public function generateUniqueSlug() {
    if ( empty( $this->slug ) ) {
        $slug = str_slug( $this->display_name );

        if ( $this->whereSlug( $slug )->exists() ) {
            $slug = "{$slug}-{$this->id}";
        }

        $this->slug = $slug;

        $this->save();
    }
}

public function setSlugAttribute( $value ) {
    $slug = str_slug( $value );

    if ( $this->whereSlug( $slug )->where( 'id', '<>', $this->id )->exists() ) {
        $slug = "{$slug}-{$this->id}";
    }

    $this->attributes['slug'] = $slug;
}
Integrando la plantilla HTML
08:36
Creando la tabla posts
07:25
Mostrando los posts desde la base de datos
05:58
Mostrando la fecha de publicación de los posts
02:58
Creando las Categorías
08:37
Qué son y cómo utilizar Seeders
09:29
Creando las Etiquetas
06:31
Integrando la plantilla de administración AdminLTE
04:07
Integrando el login - Parte I
07:00
Integrando el login - Parte II
08:39
Personalizando el menú y utilizando controladores
11:35
Mostrando los posts con DatatablesJs
06:00
Reestructuración de código y activación de links
05:52
Creación del formulario para ingresar posts
07:44
Implementación de un selector de fechas 'datepicker'
05:55
Integrando un editor de contenido y un selector múltiple
04:13
Guardando las publicaciones
07:42
Validando el formulario
09:10
Query scopes
05:05
Mostrando los posts individuales
07:46
Urls amigables
05:25
Título y descripción para SEO
03:22
Social Links
05:03
Actualizar posts - Parte 1
06:52
Actualizando posts - Parte 2
07:14
Cómo subir imágenes con DropzoneJS
07:26
Validando las imágenes
06:44
Almacenando las imágenes en el servidor
07:52
Mostrando las fotos
05:52
Galería de fotos
04:41
Eliminando fotos | Parte 1
05:24
Eliminando fotos | Parte 2
04:42
Posts con video y audio
05:21
Paginación personalizada
04:54
Filtrar posts por categoría
05:52
Filtrar posts por etiqueta
05:04
Accesores y mutadores de Eloquent
06:32
Creando etiquetas sobre la marcha
04:07
Reestructuración del PostsController
10:14
Reestructuración del PhotosController
06:47
Eliminar posts y sus relaciones
08:51
Actualizando a Laravel 5.5
04:42
Mantener el modal si hay errores
10:32
URLs únicas
09:48
Activando la navegación
07:09
Agregando las páginas estáticas
03:14
Acceso a posts no públicos
05:32
Asignar posts a usuarios
04:41
Vistas polimórficas
06:59
Políticas de acceso a publicaciones
13:06
Instalando el paquete laravel-permission
05:20
Roles y Usuarios
07:39
Permisos de usuario
09:15
Mostrando el listado de usuarios
04:56
Creando el perfil de usuario
10:29
Editar usuarios
07:19
Editar contraseña
09:46
Agregar y quitar roles de usuario
07:37
Agregar y quitar permisos de usuario
06:02
Activando rutas anidadas
05:53
Crear usuarios - Parte 1
06:33
Crear usuarios - Parte 2
03:45
Eventos y Listeners
05:52
Enviar credenciales
07:34
Políticas de acceso a usuarios
07:09
Eliminar usuarios
05:23
Permisos para asignar roles
05:48
Mostrando el listado de roles
02:41
Formulario para crear roles
10:00
Formulario para editar roles
05:23
Formulario para editar roles - parte 2
09:44
Mensajes de validación personalizados
11:45
Eliminar roles
03:55
Políticas de acceso a roles
09:04
Ver y editar permisos
07:26
Políticas de acceso a permisos
03:46
Mostrar y ocultar botones
09:43
Implementando la página de archivo
05:03
Agrupar posts por mes y año
07:21
Filtrar posts por mes y año
06:24
Optimización de consultas en Eloquent
11:44