gpt4 book ai didi

php - 如何检查是否在 Doctrine2 存储库中找到了对象?

转载 作者:可可西里 更新时间:2023-11-01 12:45:25 25 4
gpt4 key购买 nike

我通过 PK 找到一个实体,如下所示:

$ent = $em->getRepository('AppBundle:Representative')->find($id)

检查$ent 是否是真正的 Representative 对象的正确方法是什么?我对 real 的意思是 $ent 当前存在于 DB 上并且被返回,因为我计划对 INSERT更新。在伪代码中,我脑子里想的是:

if (ent is Representative)
{
// Update its values
} else {
// Create a new Representative
}

我在考虑使用 is_object() 甚至 instanceof 但我不确定他们是否会完成这项工作或者 $ent即使代表在数据库中不存在,也将是一个对象。对此有何建议?我怎样才能做到这一点?

最佳答案

EntityRepository::find()方法(您使用的)返回一个 object,如果在数据库中找不到该对象,则返回 null。以下所有条件均有效:

if ($entity) {
}

if (null !== $entity) {
}

if ($entity instanceof Representative) {
}

选择最适合您的编码标准的一种,并始终如一地使用它。

如果没有找到就不需要创建新的对象,最好抛出异常并适当处理。

关于php - 如何检查是否在 Doctrine2 存储库中找到了对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31115825/

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