我在我的Discutea Bundle"论坛"上实施了一个投票系统,我尝试了它工作正常但是当我在一个帖子上投票时没有重定向到相同的页面。至少我查了数据库,投票系统运行正常。我不得不说其他功能与注释有关,但我不知道如何在路由上使用它注释,所以我按照自己的方式做了。
我的功能是增加或维持用户的声誉:
PostController.php:
public function puntuacioAction(Request $request){
$em = $this->getDoctrine()->getManager();
$idPoster = $request->request->get('id_posterUser');
$positive= $request->request->get('positive');
$negative= $request->request->get('negative');
$user= $em->getRepository(User::class)->findOneById($idPoster);
$topic = $em->getRepository(Topic::class)->findOneByUser($user->getId());
$puntuacio = $usuari->getReputatio();
if ($positive!= null) {
$puntuacio = $puntuacio + 1;
}
if($negative!= null){
$puntuacio = $puntuacio - 1;
}
$usuari->setReputacio($puntuacio);
$em->persist($usuari);
$em->flush();
return $this->forward('DForumBundle:Post:post', array('slug' => $topic->getSlug()));
}
错误说:
Key" slug"由于数组为空,因此不存在。
我很确定返回是错误的。我会提供一些帮助。
编辑:
我替换了这个:
public function ScoreAction(Request $request){
$em = $this->getDoctrine()->getManager();
$idTopic = $request->request->get('id_topic');
$idPoster = $request->request->get('id_poster');
$positive= $request->request->get('positive');
$negative= $request->request->get('negatiu');
$user= $em->getRepository(User::class)->findOneById($idPoster);
$topic = $em->getRepository(Topic::class)->findOneById($idTopic);
$score= $user->getReputation();
if ($positive!= null) {
$score= $score+ 1;
}
if($negative!= null){
$score= $score- 1;
}
$user->setReputation($score);
$em->persist($user);
$em->flush();
$redirect = $this->generateUrl('discutea_forum_post', array('slug' => $topic->getSlug()));
return $this->redirect($redirect);
}
现在工作正常。
答案 0 :(得分:0)