gpt4 book ai didi

php - 原则 2 ODM 防止重复记录

转载 作者:IT老高 更新时间:2023-10-28 13:29:51 26 4
gpt4 key购买 nike

Doctrine NOOB 在这里,试图弄清楚如何防止嵌入许多属性中的重复记录。我有一个像这样的 EmbededDocment:

<?
/**
* @EmbeddedDocument
*/
class Contact {
/**
* @Id
*/
private $id;

/**
* created timestamp
* @Date
*/
private $created;

/**
* modified timestamp
* @Date
*/
private $modified;

/**
* @String
*/
private $name;

/**
* @String
*/
private $name;

/**
* @String
*/
private $address;
}

我想要发生的是当我添加一个新联系人时,两个联系人可以有相同的名字,两个联系人可以有相同的地址,但是两个联系人不能有相同的名字和地址.在检查重复项时,原则需要忽略 $id、$created 和 $modified 属性,因为它们几乎总是不同的。它是必须唯一的所有其他字段的组合。如何使用教义来做到这一点? 这个逻辑是属于服务层还是教义可以为我做?

更新:我确实接受安德鲁的回答是使用 Mongo 检查重复的正确方法,我真的想知道教义是否可以为我做到这一点。因此,我开始赏金了。

最佳答案

您可以实现一个事件监听器,它将监听 preUpdate 和 prePersist 事件。 http://www.doctrine-project.org/docs/mongodb_odm/1.0/en/reference/events.html

在您的事件中,您可以自己检查。

关于php - 原则 2 ODM 防止重复记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6380357/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com