Switch语句中的DQL函数在var_dump上返回0,但是当不在Switch语句中时,DQL函数可以正常工作

时间:2017-05-22 03:29:42

标签: php symfony dql doctrine-query

我有这个Doctrine DQL查询在另一个函数中完美运行,但当我把它放在我的switch语句中时,它返回0,无论是数组还是int。我不能为我的生活弄清楚为什么会这样,因为它完美无缺。

顺便说一下,当$ user是var_dumped时,它会返回当前用户,所以这不是问题。

这是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返回0,无论是数组还是(int)$ this-&gt; getStatsBy DQL($ user);

就像我说的那样,在我为测试而创建的另一个函数中,它完美地工作。 DQL函数和case都在默认控制器中,测试函数也是如此。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

$ this-&gt;午夜是什么?

在输入案例陈述之前,您是否在某处设置了它?