【发布时间】:2013-12-01 10:28:54
【问题描述】:
我刚开始学习 Symfony2(我没有太多的 php 经验),所以我的问题对某些人来说可能看起来很有趣。我现在关注 The Book 的 Databases and Doctrine 部分,我的问题涉及 Fetching Related Objects 示例(我使用的代码与文档中的代码相同,因此我不会在此处粘贴所有代码)。
本例中有一段代码获取关联对象:
public function showAction($id)
{
$product = $this->getDoctrine()->getRepository('AcmeStoreBundle:Product')->find($id);
$categoryName = $product->getCategory()->getName();
return array('product' => $product, 'category' => $categoryName);
}
当我在数据库中设置了类别引用的 Product 对象上运行此控制器时,一切正常。不幸的是,当 category 为 null 时,它会抛出 “FatalErrorException: Error: Call to a member function getName() on a non-object”。
我知道这是因为没有 Category 对象,所以没有 Category 名称,但我的问题是处理这种情况的最佳方法是什么?我希望 $categoryName 返回 null 或空字符串以在我的模板中使用,就像 Product 对象的任何其他未设置属性一样,但由于它来自关联对象,所以我被困在这个问题上
【问题讨论】:
标签: php symfony doctrine-orm