ignition-nbs/laravel-uuid-model

使Laravel的Eloquent模型可以通过UUID(字符串)而非ID(递增或bigIncrement)来识别

2.0.1 2020-04-23 19:20 UTC

This package is auto-updated.

Last update: 2024-09-24 05:30:38 UTC


README

Latest Version on Github Latest version on Packagist Total Downloads

laravel-uuid-model提供了1个PHP特质,实现了初始化函数,因此被Illuminate\Database\Eloquent\Model构造函数调用。`initializeUuidModel`将`$incrementing`设置为FALSE,`$keyType`设置为"string",并确保`id`属性可以被批量赋值。

然后它为`id`属性生成一个版本4的通用唯一标识符,并将其值设置为`$this->attributes['id']`。

需要注意的是,这个特质比扩展Laravel的Model类的UUID模型类效果更好:具有中间父类(例如App\User)的类将无法与这类UUID模型类一起工作。

此包与Laravel 5.7、5.8、6.x和7.x兼容。

安装

$ composer require ignition-nbs/laravel-uuid-model

如果您安装并使用此包,请向以下地址发送明信片

Ignition NBS Ltd
5th Floor
82 King Street
Manchester
M2 4WQ
United Kingdom

用法

为了成功使用此UuidModel,您必须做两件事

  • 在您的模型类中使用IgnitionNbs\LaravelUuidModel\UuidModel
<?php

namespace App;

use IgnitionNbs\LaravelUuidModel\UuidModel;
use Illuminate\Database\Eloquent\Model;

class MyModel extends Model
{
	use UuidModel;
}
  • 通过使用uuid()函数在相应的迁移中设置id字段
class CreateMyModelsTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('my_models', function (Blueprint $table) {
            $table->uuid('id')->primary();
        });
    }
}

## 更新日志 请参阅更新日志以了解最近的变化。

## 贡献 欢迎提交pull请求。对于重大更改,请首先创建一个issue来讨论您想进行哪些更改。

请确保根据需要更新测试。

## 安全性 如果您发现任何安全问题,请通过电子邮件guusleeuw@ignitionnbs.co.uk而不是使用issue跟踪器。

## 致谢

## 许可证 MIT