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


Ordenar tabla relacionada por id descendente

Hola, necesito usar el orderBy('id', 'DESC') en mi controlador pero no se como incorporarlo sin que me de error necesito que la tabla post se ordene por id descendente pero al ser una tabla relacionada no lo consigo

  public function show($id)
    {

        $product = Product::with('Dsa')->with('Post')->find($id);
        
  

        return view('products...

Carga de registros, con datatables

Sera que datatables no aguanta una cantidad de registro mayor a 1 millon. tengo problemas con esa parte las consultas de busquedas se toman mucho tiempo. alguien que mepueda apoyar en esa parte. ...

Controlador laravel modificar ruta path

Actualmente al subir una imagen con mi Controlador la guarda en una capeta llamada image situada en el directorio public y me gustaria que cuando suba una imagen dentro de la carpeta image cree una nueva carpeta dentro de image con el nombre del usuario y esta sea donde guarde las imagenes pero no consigo agregar esa variable al controlador me da error...

  public functi...

Muriendo a causa de SOAP

Soy nuevo en el uso de web service y en rimorsoft, sin embargo no tengo idea de como crear y que necesito para hacer un servidor soap en php alguien podria ayudarme/orientarme con una guia aunque esta sea pequeña sera bien agradecida...

Tengo un archivo XSD para trabajarlo pero repito, no tengo idea ni de como comenzar y trabajarlo, se que tengo que crear un server soap y d...