DQL 函数在 Switch 语句 Returns 0 on var_dump 中,但 DQL 函数在不在 Switch 语句中时工作正常

DQL Function inside Switch Statement Returns 0 on var_dump, but DQL Function works perfectly when not in Switch Statement

我有这个 Doctrine DQL 查询,它可以在另一个函数中完美运行,但是当我把它放在我的 switch 语句中时,它 returns 0,无论是作为数组还是作为 int。我这辈子都弄不明白为什么会这样,否则它就可以完美地工作。

顺便说一句,当 $user 是 var_dumped 时,它 returns 当前用户,所以这不是问题。

这是 DQL:

/**
 * @param User $user
 * @return array
 */
public function getStatsByDQL(User $user)
{
    $parameters = array(
         'user' => $user, 'date' => $this->midNight
    );

    $em2 = $this->getDoctrine()->getManager()
        ->getRepository('AppBundle:ExerciseStats')
        ->createQueryBuilder('g')
        ->select('g.press_over_head_1_weight')
        ->setMaxResults(1)
        ->join('g.user', 'user')
        ->where('user = :user', 'g.timestamp < :date')
        ->orderBy('g.press_over_head_1_weight','DESC')
        ->getQuery()->setParameters($parameters)-
>getResult(\Doctrine\ORM\Query::HYDRATE_ARRAY);
    return $em2;
}

这是 Switch 的一部分:

public function getExerciseWeightAndReps(string $exSet, int $setReps)
{
    $user = $this->getUser();
    $w = 0;
    $lastreps = 0;
    switch ($exSet) {

case 'poh1':
            $w = $this->getStatsByDQL($user);
            var_dump($w);
            $lastreps = $this->getUser()->getExerciseStats()->last()
            ->getPressOverHead1Reps();

var_dump returns 0,无论是数组还是by (int)$this->getStatsBy DQL($user);

就像我说的,在我创建的另一个函数中只是为了测试,它工作得很好。 DQL函数和case都在默认controller里面,test函数也是。

有什么想法吗?

$this->midnight 是什么?

在输入case语句之前你有没有设置它?