从php中的查询对象中获取值

时间:2016-09-21 20:33:37

标签: php symfony doctrine

我知道如何检索TWIG中的所有对象值,但是如何从查询对象的纯PHP中访问它们。像$ display-> item或$ display.item这样的东西,但这些都不起作用。我错过了什么吗?

        $query = $em->createQuery(
            'SELECT obj
                FROM AppBundle:itemInfoDb obj
                WHERE obj.sku = :sku'
                )->setParameter('sku', $nextSku)
                ->setMaxResults(1);

        $display = $query->getSingleResult();

1 个答案:

答案 0 :(得分:1)

使用 getters 方法访问属性:$display->getItem()。顺便说一句,你可以更好地使用getOneOrNullResult()方法来做到这一点:

// Get exactly one result or null
$object = $em->createQuery($dql)
    ->setMaxResults(1)
    ->getOneOrNullResult();

if (null !== $object) {
    $object->getId();
}

区别在于getSingleResult()不允许空结果,因此抛出NoResultException异常。

否则,您需要捕获异常:

try {
    // Gets the single result of the query.
    $object = $em->createQuery($dql)
        ->setMaxResults(1)
        ->getSingleResult();

    $object->getId();
} catch (\Doctrine\ORM\NoResultException $e) {
    // null result
}