使用get magic方法时,Doctrine不会为NULL值返回null

时间:2011-10-11 11:42:22

标签: php null compare symfony-1.4 doctrine-1.2

我有一个使用Doctrine配置的Symfony应用程序,我在两个模型之间设计了一对多的关系:Item属于Customer,它是{{1}的别名}}

假设在某些情况下某个商品没有任何客户。为了测试这个,我试图进行这种比较:

sfGuardUser

但是$customer = $this->getCustomer(); if ( $customer ) { return $customer->getNbInvoices(); } else { return 'n/a'; } 不会返回$this->getCustomer()或任何其他'false'值来进行比较,并且数据库中的外键设置为NULL。

如何比较未在数据库中存储实际值的对象?

2 个答案:

答案 0 :(得分:2)

我认为$ this-> getCustomer()会返回客户doctrine_record的空白实例。您可以测试客户是否有ID,或者您可以使用doctrine_record类的方法exists():

if($customer->exists()){
 code...
}

http://www.doctrine-project.org/api/orm/1.2/doctrine/doctrine_record.html#exists%28%29

答案 1 :(得分:0)

怎么样

if ($this->relatedExists('Customer') {
   return $this['Customer']->getNbInvoices();
} else {
  return 'n/a';
}