我有这个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都在默认控制器中,测试函数也是如此。
有什么想法吗?
答案 0 :(得分:1)
$ this-&gt;午夜是什么?
在输入案例陈述之前,您是否在某处设置了它?