所以,混合@Jakub Matczak建议的answer by @Matteo和answer by psyloss我想出了这个:

class Company

{

/**

* @var string

*

* @ORM\Column(name="id", type="string")

* @ORM\Id

* @ORM\GeneratedValue(strategy="CUSTOM")

* @ORM\CustomIdGenerator(class="AppBundle\Doctrine\IdGenerator")

*/

private $id;

...

然后

namespace AppBundle\Doctrine;

use Doctrine\ORM\EntityManager;

use Doctrine\ORM\Id\AbstractIdGenerator;

use Ramsey\Uuid\Uuid;

/**

* {@inheritdoc}

*/

class IdGenerator extends AbstractIdGenerator

{

/**

* {@inheritdoc}

*/

public function generate(EntityManager $em, $entity)

{

$uuid = Uuid::uuid4()->getHex();

if (null !== $em->getRepository(get_class($entity))->findOneBy(['id' => $uuid])) {

$uuid = $this->generate($em, $entity);

}

return $uuid;

}

}

此生成器还检查具有相同名称的现有实体,如果需要,重新生成UUID并保证唯一性.

生成的值正是我想要的:7b165049eb224f548021f68caefc57f6.

php doctrine,PHP和Doctrine:如何创建唯一ID相关推荐

  1. java creat uid_关于uniqueidentifier:如何在Java中创建唯一ID?

    本问题已经有最佳答案,请猛点这里访问. 我正在寻找在Java中创建唯一ID作为String的最佳方法. 任何指导表示赞赏,谢谢. 我应该提到我正在使用Java 5. 看看这个stackoverflow ...

  2. php 自增,php 根据自增id创建唯一编号类

    在开发过程中,我们数据表一般都使用自增数字作为id主键,而id是数字型,不容易理解.我们把id按一定格式转为编号后,很容易根据编号知道代表的是什么内容. 例如订单表id=201601111976812 ...

  3. mysql 唯一索引出现重复数据_MySQL 创建唯一索引忽略对已经重复数据的检查

    MySQL 创建唯一索引忽略对已经重复数据的检查 在创建唯一索引的基础上加上关键字"IGNORE "即可. # 重复数据 mysql> select aid,count(ai ...

  4. SQLServer之创建唯一聚集索引

    创建唯一聚集索引典型实现 唯一索引可通过以下方式实现: PRIMARY KEY 或 UNIQUE 约束 在创建 PRIMARY KEY 约束时,如果不存在该表的聚集索引且未指定唯一非聚集索引,则将自动 ...

  5. mysql中创建唯一索引的关键字_mysql中唯一索引的关键字是什么

    mysql中唯一索引的关键字是unique index.创建唯一索引可以避免数据出现重复.唯一索引可以有多个,但索引列的值必须唯一,索引列的值允许有空值.创建唯一索引可以使用关键字UNIQUE随表一同 ...

  6. Magento 创建唯一优惠券 Create unique coupon code in Magento

    Toni from ICG wrote a post how to create simple A/B split testing for offline promotions for online ...

  7. sql语句创建唯一索引

    使用sql语句创建唯一索引,格式如下: create unique index 索引名 on 表名(列名1,列名2--) 示例:在表GoodsMade_Labour的SID列上创建唯一索引IX_Goo ...

  8. mysql 创建唯一索引_Mysql普通索引和唯一索引的选择分析

    假设一个用户管理系统,每个人注册都有一个唯一的手机号,而且业务代码已经保证了不会写入两个重复的手机号.如果用户管理系统需要按照手机号查姓名,就会执行类似这样的 SQL 语句: select name ...

  9. Sql Server 创建唯一聚集索引典型实现

    创建唯一聚集索引典型实现 唯一索引可通过以下方式实现: PRIMARY KEY 或 UNIQUE 约束 在创建 PRIMARY KEY 约束时,如果不存在该表的聚集索引且未指定唯一非聚集索引,则将自动 ...

  10. SQLServer之创建唯一非聚集索引

    创建唯一非聚集索引典型实现 唯一索引可通过以下方式实现: PRIMARY KEY 或 UNIQUE 约束 在创建 PRIMARY KEY 约束时,如果不存在该表的聚集索引且未指定唯一非聚集索引,则将自 ...

最新文章

  1. 使用Genymotion调试出现错误INSTALL_FAILED_CPU_ABI_INCOMPATI
  2. 软件系统架构师成长之路(一)
  3. 从CMOS到触发器(一)
  4. VTK:可视化算法之HeadBone
  5. jmeter性能指标
  6. PyTorch框架学习十三——优化器
  7. 颜色表大全 颜色中英文对照表
  8. 监督学习-分类模型1-线性分类器(Linear Classifiers)
  9. C语言如何生成随机数
  10. 世界时钟-国家中英文名称-国家代码-与北京的时差 一览
  11. 努比亚计科学计算机,努比亚Z系列迎来迭代新机,Geekbench跑分出炉,预计春节后发布...
  12. 用js企业微信推送通知
  13. python str怎么用_python的str函数怎么使用
  14. 基于51单片机的4位竞赛抢答器的设计
  15. Java分布式中文分词组件 - word分词
  16. 参考文献是会议论文应该什么格式?
  17. 戴尔EMC服务器重装系统
  18. 【信号采集】基于FPGA的高速信号采集系统
  19. 从零开始做3D地图编辑器(基于QT与OGRE)
  20. 垂直同步、绘制效率、显示器刷新频率与帧率(转)

热门文章

  1. 华为手机电源键不止锁屏关机那么简单!这些操作不能浪费,望周知
  2. 中国工商银行上海市分行-存量房交易服务平台
  3. java图片转单色位图_Android:将位图转换为单色位图(每像素1位)
  4. 蓝海卓越无线运营方案简述
  5. unity3D灯光烘焙(二)
  6. 深入了解C/C++开发就业前景如何?
  7. 利用python批量查询企业信息_Python 实现批量查询域名可用性
  8. 大战略游戏:统治者:罗马 for Mac
  9. SQL Server选择题40个
  10. 从单目视觉信息学习深度信息(一)