Generar UUID en Laravel 5.5

UUID en Laravel

UUID significa identificador único universal o universally unique identifier y es un número de 16 bytes (128 bits)... Es una cifra de 32 dígitos hexadecimales, divididos en cinco grupos separados por guiones 8-4-4-4-12, lo que da como resultado 36 caracteres (32 dígitos y 4 guiones). Al final tendríamos algo así 772a8410-e30a-41d4-a714-433655441100


¿Para qué usar UUID si ya contamos con un ID en cada tabla?

La respuesta es sencilla, puedes tener el ID 1 en la tabla users y el ID 1 en la tabla posts es decir, tenemos que el ID se está repitiendo y es ahí donde nace el IDENTIFICADOR UNIVERSAL, en otras palabras un ID que no se repite en la BASE DE DATOS.

El UUID es empleado en el proceso de construcción de software. Es un ID Universal que permite distinguir un objeto o registro de otro dentro de todo el sistema.

UUID en Laravel 5.5

Para ello podemos utilizar el paquete webpatser/laravel-uuid y para su instalación usamos el comando composer require webpatser/laravel-uuid este paquete es para generar y validar un código UUID estándar...

Base de datos, creación del campo UUID

Una vez instalado el paquete procedemos a preparar la tabla, en este caso usaremos la tabla users como ejemplo, el campo se crea de la siguiente manera $table->uuid('uuid');

Recuerda que se gradará un dato de 36 caracteres, entonces en la tabla se crea un campo tipo char de 36 caracteres.

Archivo database/migrations/2014_10_12_000000_create_users_table.php

Schema::create('users', function (Blueprint $table) {
    $table->increments('id');
    $table->uuid('uuid'); //Campo único universal
    $table->string('name');
    $table->string('email', 180)->unique();
    $table->string('password');
    $table->rememberToken();
    $table->timestamps();
});

Generar código UUID

Probemos con la siguiente ruta.

Route::get('uuid', function () {
    echo Uuid::generate()->string;
});

Al acceder a la ruta uuid vemos como se genera por ejemplo un super código UUID como este 6ce52ce0-b8e6-11e7-b7ff-d3344d79e4f2

Guardar en una tabla

Debemos tener en cuenta que el campo esté de alta en la entidad, en este caso User.php

Archivo app/User.php

protected $fillable = [
    'uuid', 'name', 'email', 'password',
];

Ejemplo de guardar routes/web.php

use App\User;

Route::get('guardar-usuario', function () {
    User::create([
        'uuid'  	=> Uuid::generate()->string,
    	'name'  	=> 'Italo Morales',
    	'email' 	=> 'i@italomoralesf.com',
    	'password' 	=> bcrypt('123456')
    ]);
});

De esta manera culminamos este post, qué opinas?... Recuerda que cada comentario es una nota que guardas en tu perfil.

Importante

El UUID no reemplaza al ID, el ID es un identificador único de la tabla, y el UUID es un indentificador único de la base de datos.

Adquiere en preventa y aprovecha un gran descuento TDD en Laravel

Comparte en

Creado por: Venezuela Italo Morales

Profesor de #Laravel y #PHP en Rimorsoft Online

Más información


El auth de laravel trabaja con $_SESSION?.

el auth de laravel trabaja basado en tokens o con el objeto session de php ...

Rutas de Laravel no funcionan

Buenas a todos, tengo un problema, ultimamente, cada vez que creo un nuevo proyecto de Laravel las rutas de este no funcionan. Por ejemplo: si creo el proyecto, éste se crea, pero al agregarle el sistema de autenticación: "auth" se generan tanto las rutas en el archivo web.php y las vistas. pero si intento acceder a la sección de registro o inicio de sesión me aparece el e...

form request ajax laravel (Mostrar error de validación de formulario con ajax)

Hola, tengo una consulta por hacer. Quisiera conocer sus opiniones, sobre como mostrar los errores de validación con ajax cuando utlizo la clase Form Request. Debo decir que el mensaje de registrado con éxito si lo muestra, sin embargo los mensajes de error no los he podido mostrar. Gracias

//FORM REQUEST


public function rules()
    {
        return [
     ...

Select Dinámico

Hola buenas a todos estoy trabajando en un sistema en el cuál, en un formulario tengo un select para seleccionar datos de una tabla, y en la vista del formulario me funciona ya que me carga todos los datos que tengo almacenados en dicha tabla; pero cuando selecciono una de las opciones, sea cual séa la que seleccione, siempre se guarda el primer registro de la tabla... Es com...