I’m currently develop a web application with Laravel.
My database engine is a Microsoft SQL Server.
For some data I preferred to generate an uuid.
When I use Windows to run my Laravel app, the uuid format is correct :
- A5EE121A-1F10-46FC-B779-49D2A0FA3B68
But when I ran my Laravel app under linux, and use the same database, the uuid format is like this :
- b"x1Ax12î¥x10x1FüF·yIÒ ú;h"
I don’t know where is the problem…
Have you an idea ?
Thanks.
The goal is to retrieve the same format when the Laravel app ran under Windows and under Linux.
2
Answers
In Microsoft SQL Server, UUIDs are typically stored using the UNIQUEIDENTIFIER datatype, which is a 16-byte binary value. When you fetch this value from the database, the driver might represent this binary data differently based on the platform.
To resolve this and retrieve the UUID in a consistent format across both platforms, you can explicitly convert the UUID to its string representation when querying the database.
In your Laravel model, you can use accessors to handle the UUID conversion:
so you can access it in Laravel using
$model->uuid
and get the expected string format.in your
config/database.php
add thisthen optimize:clear your app