UUID作为主键不工作Laravel

时间:2017-03-15 07:19:40

标签: mysql laravel laravel-5 uuid

我们已经使用UUID作为laravel中的主键,我已创建了一条记录及其工作但我无法使用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;
}

控制器:

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

但结果总是空的。 :(

谢谢!

1 个答案:

答案 0 :(得分:1)

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

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

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

并确保添加可填写的

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

另外你可以看看这个包

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

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