}')] class PostController extends BaseController { #[Route('/', name: 'post_index', // requirements: ['_locale'=> 'en|zh_CN'], methods: ['GET'] )] public function index(Request $request, PostRepository $postRepository, Security $security): Response { // $user = $this->getUser(); $user = $security->getUser(); // dd($user); $page = $request->query->getInt('page', 1); $limit = $this->getParameter('page_limit'); $offset = ($page - 1) * $limit; $paginator = $postRepository->getPostPaginator($offset, $limit); $max_page = ceil($paginator->count() / $limit); return $this->render('post/index.html.twig', [ 'max_page' => $max_page, 'paginator' => $paginator, 'page' => $page // 'posts' => $postRepository->findBy(['status' => 'published'], ['id' => 'DESC']), ]); } #[Route('/post/{id1}', name: 'post_show', methods: ['GET', 'POST'])] #[ParamConverter('post', options: ['id' => 'id1'])] public function show(Request $request, Post $post, EntityManagerInterface $entityManager, PaginatorInterface $paginator, CommentRepository $commentRepository, TranslatorInterface $translator, EventDispatcherInterface $eventDispatcher): Response { $commentForm = $this->createForm(CommentType::class); $commentForm->handleRequest($request); if ($commentForm->isSubmitted() && $commentForm->isValid()) { if ($commentForm->get('submit')->isClicked()) { /**@var Comment $data * */ $data = $commentForm->getData(); // dd($data); $event = new AfterCommentSubmitEvent($data); /**@var AfterCommentSubmitEvent $modifiedEvent**/ $modifiedEvent = $eventDispatcher->dispatch($event); // $data = $modifiedEvent->getComment(); $data = $modifiedEvent->getSubject(); // $files = $request->files->all(); // /**@var UploadedFile $file**/ // foreach ($files['comment']['files'] as $file){ // $originName = $file->getClientOriginalName(); // $fileName = pathinfo(htmlspecialchars($originName), PATHINFO_FILENAME) . '-' . $file->getFilename() . '.' . $file->getClientOriginalExtension(); // $uploadPath = $this->getParameter('base_path'); // $mimeType = $file->getMimeType(); // $filesize = $file->getSize(); // // $file->move($uploadPath, $fileName); // // $fileManaged = new FileManaged(); // $fileManaged->setOriginName($originName); // $fileManaged->setFileName($fileName); // $fileManaged->setMimeType($mimeType); // $fileManaged->setPath($uploadPath . '/' . $fileName); // $fileManaged->setFileSize($filesize); // // $data->addFile($fileManaged); // } // dd($data); $data->setPost($post); $entityManager->persist($data); $entityManager->flush(); $this->addFlashMessages('success', 'comment_submit_message',['%name%'=>$data->getAuthor()]); // $this->addFlash('success', $translator->trans('comment_submit_message')); } } $query = $commentRepository->getPaginationQuery($post); $pagination = $paginator->paginate( $query, /* query NOT result */ $request->query->getInt('page', 1), /*page number*/ 10 /*limit per page*/ ); return $this->render('post/show.html.twig', [ 'post' => $post, 'pagination' => $pagination, 'comment_form' => $commentForm->createView() ]); } }