有没有办法为 Laravel 5.8 创建自定义 UUID 前缀 ?

我想在 Laravel 中添加一个自定义前缀 , 以帮助更好地跟踪数据库条目。 当前 , 当调用时 , uuid ( ) ; 函数将生成这样的表项 :

6ab4a8c-9597-lle7-a63c-0242c100426l

但我想在该表中的每个 uuid 条目前都有一个前缀。 例如 , 用户表中的用户将有一个 uid 前缀与 UUUID

UUID-6ab4a8c-9597-lle7-a63c-0242c100426l

并将以 PUID 前缀保存在 Post 表格中 :

PUID-6ab4a8c-9597-lle7-a63c-0242c100426l

表示 ("邮政"独特的标识符)


用户表的默认迁移如下 :

Schema::create('users', function (Blueprint $table) {
    $table->bigIncrements('id');
    $table->string('name');
    $table->string('email')->unique();
    $table->timestamp('email_verified_at')->nullable();
    $table->string('password');
    $table->rememberToken();
    $table->timestamps();
});

为了使用无人机 , 将使用以下工具 :

Schema::create('users', function (Blueprint $table) {

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

});


我不确定定义 UUID ( s ) 的模型存储在哪里 , 也不确定是否要修改整个模型。

理想情况下 , uuid 将使用表名定义 , 然后前缀如下 :

$table->uuid('puid', 'PUID')->primary();

有没有人知道如何执行 ?

先谢谢你。


EN From: Is there a way to create a custom UUID prefix for Laravel 5.8?

3 Comments

  1. 即使您的数据库中有 UID 列 , Laravel 也不会根据我的知识自动填写。 这意味着你 ( 或者你安装的包 ) 对此负责。
  2. 你想用这个解决什么问题 ? 似乎应该有一个更好的解决办法 , 而不是与 UUID 这一代打交道。
  3. 您可以使用访问器和 mutator 在前面实现您想要的 , 但数据库将包含 UID 格式化的值 , 因为它是 UUID 列。

    Users 模型中 :

    public function getUuidAttribute($value)
    {
        return "UUID-".$value;
    }
    
    public function setUuidAttribute($value)
    {
        $this->attributes['uuid'] = str_replace("UUID-", "", $value);
    }
    

    Posts 模型中 :

    public function getPuidAttribute($value)
    {
        return "PUID-".$value;
    }
    
    public function setPuidAttribute($value)
    {
        $this->attributes['puid'] = str_replace("PUID-", "", $value);
    }
    

    您将在转储 $user->uuid 时看到 UUID-6ab4a8c-9597-lle7-a63c-0242c100426l, 同样的情况将以 $post->puid 为前缀。

    否则 , 您应该自己生成 UUID , 并将其保存为数据库中的字符串。

More articles:

  • 如何修复在 laravel 没有发现错误的 Class"app\hotelroom"?
  • 有没有办法用不同的 WHERE语句两次加入同一个表并创建两个新字段 ?
  • 有没有办法创建与 Isotope 筛选器的直接链接
  • Laravel 控制器实例创建
  • 如果没有像登录页这样的菜单栏 , 我如何创建一个带有 # 反应式管理的自定义页面 ?
  • 在模型上创建过程的 Laravel 5 我得到错误
  • Laravel 用原始字符串创建表格
  • (数据库中没有保存的数据)
  • 有没有办法将原语集合 ( 如 String , Fixnum , 而不是自定义对象 ) 分配给 Rails 中使用 Active Record 的对象 ?
  • 创建要在视图中输出的数据 ?
  • 我为 uib 模式创建了一个自定义模板 , 但是当我启动服务器时 , html 文件没有服务
  • 如何在 laravel 5.2 中添加自定义验证规则 ?
  • 注册自定义 TClientDataSet , 但我没有看到构造函数中创建的字段
  • 如何在 Laravel 为自定义验证规则创建自定义错误消息
  • 通过邮递员解析自定义日期和时间
  • 不能删除我没有创建的程序集 ,"DROP程序集"不允许指定架构名称作为程序集名称的前缀
  • 有没有办法限制 Rails 中的模型字段创建?
  • Laravel 5 模型没有将指定字段插入数据库
  • 使用 OAuth2 的 Laravel 自定义用户提供程序
  • 如何在没有 Nolls / NEC 的情况下创建错误向量 ?
  • 有没有办法检测到最近的 UIButton 点击位置?
  • Laravel 弹出 , 带 jQuery / jQuery UI
  • 有没有办法禁用 or g. junit 。
  • 如何在 Laravel 5.1 完成后捕捉作业队列细节?
  • 有没有办法检查气泡是否触发了点击?
  • 如何在 laravel 5.1 中显示标题为 url 而不是 id ?
  • Laravel 的 Handeling 例外 (etrepat / baum) 5
  • Laravel 5 : 链接至 php 页
  • Laravel 5.1 部署中的 404 错误
  • 如何创建一个腊瓦 5.5 定制 auth ?