Doctrine findOneBy 返回值

问题描述 投票:0回答:3

我在一个项目中使用 Doctrine,我必须找到一个值。如果这样的值不存在或者有多个值,则必须启动另一个进程。 我认为我应该为此使用 findOneBy 函数。现在我想知道如果结果不是单个值,这个函数会做什么。会返回null吗?会抛出错误吗?我尝试查看 Doctrine 文档,但找不到说明返回值或可能的异常的地方。

准确了解这个函数的作用对我来说很重要,因为我必须在关键过程中使用它。对于我来说,如何使用它的示例还不够。如果有某种 API 文档那就太好了。

如果有人可以帮助我,我将不胜感激。 谢谢!

php symfony doctrine
3个回答
5
投票

您可以使用

var_dump($findByOneResult)
进行测试并检查它是什么 返回。

不要忘记在之后使用

exit()
,这样你就会在那里停止代码。

我刚刚在我的一个 php 项目上尝试过这个(使用 Zendframework 2 和学说),它只返回数据库的第一次出现。

希望对您有帮助。


5
投票

findOneBy 将根据给定的条件返回单个对象,如果不存在要返回的数据,则结果将为空值。您可以使用empty() 函数检查。有关更多信息,请参阅此http://symfony.com/doc/current/doctrine.html#fetching-objects-from-the-database,祝一切顺利


0
投票

Doctrine 的

findOneBy()
方法将返回它在数据库中找到的第一个符合您的条件的对象。

  • 如果没有对象符合您的条件,则返回
    null
  • 如果恰好有一个对象符合您的条件,则返回该对象
  • 如果多个对象符合您的条件,将返回找到的第一个对象

因此,如果您的条件指定了一个对象,并且您知道该对象必须是唯一的,那么您可以确定,您将获得该确切的对象(如果存在)。

如果返回一个对象,您无法(仅通过该调用)知道数据库中是否有更多对象符合您的条件。

当您并不真正关心是否有更多对象时,

findOneBy()
方法应该被视为快速获取一个对象的语法糖。

如果您需要知道是否有多个对象,则

findOneBy()
方法将不会提供该信息。

© www.soinside.com 2019 - 2024. All rights reserved.