Laravel中主键使用UUID(注意点)

Posted richard-tang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Laravel中主键使用UUID(注意点)相关的知识,希望对你有一定的参考价值。

这里的UUID采用  webpatser/laravel-uuid 安装的方法可以在GitHub上进行查看一步步进行安装


需要注意的是,在安装完和配置完后,想要在调用模型的 create方法时让模型自动生成UUID的主键需要在模型中添加以下的配置

技术图片

public $incrementing = false;

public static function boot(){
  parent::boot();
  self::creating(function ($model) {
    $model->id = (string) CommonUtils::uuid();
  });
}
红色区域的方法是我自己封装的,原先他生成的UUID中带 - 所以我自己封装的将它去掉了,另外注意下UUID的长度! 

将上面的方法添加完后,在使用create时就可以自动生成UUID了!

记得在使用前需要引入
use WebpatserUuidUuid;
/**
 *  这一段是GitHub上的原方法!
 */
public static function boot()
{
    parent::boot();
    self::creating(function ($model) {
        $model->uuid = (string) Uuid::generate(4);
    });
}

 

 

 


以上是关于Laravel中主键使用UUID(注意点)的主要内容,如果未能解决你的问题,请参考以下文章

数据库表中主键的设置

ssh注解中主键生成策略无效

laravel eloquent 的特殊 UUID 主键

mybatis中useGeneratedKeys用法--插入数据库后获取主键值

MySQL实现自动使用uuid作为主键以及解决不能调用触发器的一点思路

数据库中主键和外键的作用?