代码之家  ›  专栏  ›  技术社区  ›  kiewic

如何知道数据库中是否存在关系中的对象

  •  6
  • kiewic  · 技术社区  · 14 年前

    我在用symfony理论。

    我定义了两个类, 学生 一对一的关系。

    学生 ,但不是每一个 与…有关系 学生 .

    当我打电话时…

    $person->getStudent();
    

    …我总是反对,不管什么 没有学生。我怎么知道这不是 学生 )数据库中是否存在?

    谢谢。

    3 回复  |  直到 7 年前
        1
  •  9
  •   Felix Kling    14 年前

    我想

    $person->getStudent()->exists();
    

    应该这样做。至少根据 Doctrine API documentation .
    您得到的对象可能是某种空记录。

        2
  •  3
  •   Julien    7 年前

    您也可以使用 Doctrine_Record::relatedExists() ,这是对 hasReference()

    你这样使用它:

    if ($person->relatedExists('Student'))
    
        3
  •  2
  •   Raphael Schumacher    14 年前

    有一种非常新的方法(我认为,自1.2条以来): $person->hasReference("Student"); 返回一个布尔值,用于确定是否确实有一个学生与此人关联,无论该学生是否已保存在数据库中,并且根据需要不创建新的学生记录。 当应用程序逻辑不关心相关对象的持久性时,例如在事务中(我猜),此调用可能适用。 希望能有所帮助,拉斐尔,干杯。