Witam, otóż mam pewien problem, na początek chciałbym oczywiście pozdrowić wszystkich na forum pana Zelenta. Fantastyczny człowiek, robiący wiele dobrego na polskiej scenie informatycznej. Dziękuję za pańskie kursy. Po 2. dziękuję za tą możliwość dołączenia do waszego forum. I sory, ale przychodzę do was od razu z problemem.
Mianowicie. Tworzę forum w symfony, i do wyświetlania postów używam paginatora, który przy wczytywaniu widoku włącza chyba (nie sprawdziłem) kontroler x*ilość_podstron_paginacji + 1 razy. Więc gdy w tym samym kontrolerze, chce dodac do zmiennej view + 1. To odpalając go kilkukrotnie przez paginator ta liczba, jest zawsze wieksza od 2.
Ktoś wie może jak to naprawić?
/**
* @Route("thread/{threadid}/{threadname}", name="app_forum_thread_user", defaults={"threadname"=""})
* @Security("is_granted('ROLE_USER')")
*/
public function openThread(MainMenuService $mainMenuService, PaginatorInterface $paginator,
UserForumPostRepository $forumPostRepo, Request $request,
UserForumTopic $threadid, SessionInterface $session, EntityManagerInterface $em,
RequestStack $event, LoggerInterface $logger){
if($request->attributes->get('_request_type')==1){
$views = $threadid->getViews();
$threadid->setViews($views+1);
$em->persist($threadid);
$em->flush();
}
$logger->info('REQUEST rejkjawik: '.$request->attributes->get('_request_type'));
$query = $forumPostRepo->findPostsForThreadWithPagination($threadid);
$pagination = $paginator->paginate(
$query, /* query NOT result */
$request->query->getInt('page', 1), /*page number*/
($session->get('plimit')) ? $session->get('plimit') : 10 /*limit per page*/
);
$postsLikes = [];
foreach ($pagination as $post){
$conn = $em->getConnection();
$sql = "SELECT * FROM account_user_forum_post WHERE account_id = ? AND user_forum_post_id = ?";
$stmt = $conn->prepare($sql);
$stmt->bindValue(1, $this->getUser()->getId());
$stmt->bindValue(2, $post->getId());
$stmt->execute();
$wynik = $stmt->fetch();
$postsLikes[$post->getId()] = ($wynik)? 1 : 0 ;
}
$mainMenu = $mainMenuService->getMenu();
return $this->render($_SERVER['DEFAULT_TEMPLATE'].'/forum/Thread_View.twig', [
'title'=>'Forum - '.$_SERVER['APP_NAME'],
'lang'=>'pl',
'APP_NAME'=>$_SERVER['APP_NAME'],
'logoSite'=>$_SERVER['SHOW_LOGO'],
'navFooter'=>$_SERVER['NAV_FOOTER'],
'footer'=>$_SERVER['FOOTER'],
'pageName'=>"Forum",
'MainMenu' => $mainMenu,
'user'=>$this->getUser(),
'profile'=>$threadid->getForum()->getCategory()->getIsItUserPrivateForum()->getUserAdmin(),
'forumCre'=>$threadid->getForum()->getCategory()->getIsItUserPrivateForum(),
'forum'=>$threadid->getForum(),
'thread'=>$threadid,
'posts_pagination'=>$pagination,
'postsLikes'=>$postsLikes,
'page'=> $request->query->get('page'),
]);
}