欢迎光临南昌笑劳网络科技有限公司,我们是一家专注中小型企业营销推广服务的公司!

咨询热线:400 76543 55
南昌笑劳网络科技有限公司
最新资讯News
南昌笑劳网络科技有限公司

Laravel UUID主键怎么生成_Laravel模型使用UUID教程

作者:尼克 | 点击: | 来源:尼克
0801
2026
在Laravel中使用UUID作为主键需修改迁移文件将主键设为uuid类型,模型中通过creating事件自动生成UUID,推荐使用ramsey/uuid库提升性能,查询时传入标准格式UUID字符串即可。...
在Laravel中使用UUID作为主键需修改迁移文件将主键设为uuid类型,模型中通过creating事件自动生成UUID,推荐使用ramsey/uuid库提升性能,查询时传入标准格式UUID字符串即可。

在Laravel中使用UUID作为模型主键,可以避免暴露数据真实ID,提升安全性,同时支持分布式系统下的唯一性需求。下面介绍如何在Laravel模型中使用UUID作为主键并自动生成。

启用UUID主键

要让模型使用UUID作为主键,首先需要修改数据库迁移文件,将主键类型从默认的自增整数改为UUID。

示例迁移代码: ```php Schema::create('posts', function (Blueprint $table) { $table->uuid('id')->primary(); // 使用UUID为主键 $table->string('title'); $table->text('content'); $table->timestamps(); }); ```

模型中自动填充UUID

Laravel模型可以通过重写 boot 方法或使用 creating 事件监听,在创建记录时自动生成UUID。

在模型中添加以下代码: ```php use Illuminate\Support\Str; use Illuminate\Database\Eloquent\Model;

class Post extends Model { protected static function boot() { parent::boot();

    static::creating(function ($model) {
        if (!$model->id) {
            $model->id = (string) Str::uuid();
        }
    });
}

}

  • 使用 Str::uuid() 生成UUID字符串
  • creating 事件在保存前触发,确保ID未设置时才赋值
  • 强制转为字符串,避免类型问题

可选:使用Ramsey UUID扩展(推荐生产环境)

Laravel自带的 Str::uuid() 基于OpenSSL生成,若需更高性能和标准兼容性,可安装ramsey/uuid。

安装命令: ```bash composer require ramsey/uuid

在模型中使用:

use Ramsey\Uuid\Uuid;

static::creating(function ($model) {
    if (!$model->id) {
        $model->id = (string) Uuid::uuid4();
    }
});

查询使用UUID主键的记录

查询方式与普通主键一致,直接传入UUID字符串即可。

```php $post = Post::find('a1b2c3d4-e5f6-7890-g1h2-i3j4k5l6m7n8'); ```
  • 确保传入的UUID格式正确(带连字符的标准格式)
  • 建议前端传递时使用字符串,避免精度丢失

基本上就这些。只要改迁移、设主键、模型里绑定创建事件,就能顺利用上UUID。


# php  # database  # 数据库  # 主键  # 自动生成  # 就能  # 设为  # 推荐使用  # 可以通过  # 更高  # 重写  # 要让  # table  # 事件  # laravel  # 前端  # composer  # ssl  # 分布式  # Static  # String  # 字符串  # class  # protected  # function  # 可选 

我要咨询做网站
成功案例
建站流程
  • 网站需
    求分析
  • 网站策
    划方案
  • 页面风
    格设计
  • 程序设
    计研发
  • 资料录
    入优化
  • 确认交
    付使用
  • 后续跟
    踪服务
  • 400 76543 55
    sale#ncxiaolao.cn
Hi,Are you ready?
准备好开始了吗?
那就与我们取得联系吧

咨询送礼现在提交,将获得笑劳科技策划专家免费为您制作
价值5880元《全网营销方案+优化视频教程》一份!
下单送礼感恩七周年,新老用户下单即送创业型空间+域名等大礼
24小时免费咨询热线400 76543 55
合作意向表
您需要的服务
您最关注的地方
预算

直接咨询