mysql - UUID 作为主键不工作 Laravel

标签 mysql laravel laravel-5 uuid

我们在 laravel 中使用 UUID 作为主键,我已经创建了一条记录并且它在工作,但是我无法使用 UUID 获取这条记录。

表:

CREATE TABLE `User` (
  `uuid` binary(16) NOT NULL ,
  `name` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`uuid`),
) ;

Laravel 代码:

型号:

class User extends Model {
    const UPDATED_AT = 'updated';
    protected $table = 'user';
    protected $primaryKey = 'uuid';
    protected $incremental = false;
}

Controller :

$contact = User::find(hex2bin('11E7094BFDB648529F5F7429AF41FD58'));

但结果始终为 Null。 :(

谢谢!

最佳答案

要在 laravel 中创建 uuid 字段,在模式模型中有两种方法

$table->uuid('uuid')->unique();

$table->char('uuid', 36)->unique();

并确保添加可填充

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

你也可以看看这个包

https://github.com/EmadAdly/laravel-uuid

通过简单的方法可以(创建、添加、搜索 uuid)生成 UUID 并在添加新行时为任何模型自动将其注入(inject)到 uuid 字段中,您也可以轻松地通过 uuid 进行搜索。

关于mysql - UUID 作为主键不工作 Laravel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42803338/

相关文章:

javascript - 如何修复 GET URL 中更改的日期格式

php - 搜索未出现在值之间的数据

mysql - 数据库设计建议

mysql - Laravel 如何与数据库交互

mysql - 如何在原始查询 Laravel 中创建表?

laravel - 如何在 Laravel 中验证 Patch/Put 请求

mysql - mysql如何根据存储过程中的参数动态创建where条件?

Mysql SUM 的 SUM

php - 转义数据的最佳方式 JS->PHP->MySQL,反之亦然

laravel - 需要在 Laravel 4 的同一张表中设置一对多的关系