Symfony4如何使用查询构建器获取对象

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Symfony4如何使用查询构建器获取对象相关的知识,希望对你有一定的参考价值。

(嗨!),我需要从查询构建器中获取对象,但是我收集了一个数组,所以我有以下错误:

在数组上调用成员函数getPropertyName()

所以我想我的要求不正确,但我不知道如何解决我的问题

public function findByYear($year): array
{
    $conn = $this->getEntityManager()->getConnection();

    $sql = 'SELECT * FROM rent_release r WHERE YEAR(`date`) = :yearRequested';
    $stmt = $conn->prepare($sql);
    $stmt->execute(['yearRequested' => $year]);

    return $stmt->fetchAll();
}

等待你的帮助,谢谢:)

答案

好吧,根据评论,我使用了createQueryBuilder和beberlei / doctrineextensions。

这是DQL:

$qb = $this->createQueryBuilder('rr')
        ->andWhere('YEAR(rr.date) = :year')
        ->setParameter('year', $year)
        ->orderBy('rr.date', 'ASC')
        ->getQuery();

    return $qb->execute();

在doctrine.yaml中我添加了这个:

dql:
      string_functions:
        YEAR: DoctrineExtensionsQuerymysqlYear

现在它运作良好,谢谢大家!

以上是关于Symfony4如何使用查询构建器获取对象的主要内容,如果未能解决你的问题,请参考以下文章

在执行查询之前,如何从 Laravel 的查询构建器中获取原始查询字符串?

如何跳过查询条件片段中的空对象?

Laravel,如何将集合对象转换为构建器对象

如何使用导航架构组件从片段中获取结果?

如何在学说 2 中创建对象属性的查询构建器

laravel5.4之查询构建器获取结果集总结一