/** * @Route("comment/{id}") * @ParamConverter("blog", class="AppBundle:BlogArticle") * @Method("post") */ public function createAction(Request $request, BlogArticle $blog) { $comment = new Comment($blog); $form = $this->form_factory->create('comment', $comment); $form->handleRequest($request); if ($form->isValid()) { $this->service->add($comment); return $this->redirect($this->generateUrl('app_blog_show', ['id' => $blog->getId()])); } return $this->render('Comment/form.html.twig', ['form' => $form->createView(), 'comment' => $comment]); }
/** * @Method({"GET"}) * @Route("/{id}/read/{slug}", name="app_blog_article_read", requirements={"id" = "\d+", "slug" = "[a-z0-9_-]+"}, defaults={"slug" = null}) * @Template("blog/article/read.html.twig") */ public function readAction(Request $request, BlogArticle $article, $slug = null) { if ($article->getPublicationDate() == null) { throw new NotFoundHttpException(); } /** @var Slugify $slugify */ $slugify = $this->get('slugify'); $slugCheck = $slugify->slugify($article->getTitle()); if ($slug !== $slugCheck) { return $this->redirect($this->generateUrl('app_blog_article_read', ['id' => $article->getId(), 'slug' => $slugCheck])); } $articlesRead = $request->getSession()->get('articles_read', []); if (!in_array($article->getId(), $articlesRead)) { $article->setViews($article->getViews() + 1); $this->getDoctrine()->getManager()->persist($article); $this->getDoctrine()->getManager()->flush(); $articlesRead[] = $article->getId(); } $request->getSession()->set('articles_read', $articlesRead); return ['article' => $article]; }
/** * {@inheritdoc} */ public function load(ObjectManager $manager) { $blogArticleRecords = []; for ($i = 0; $i < 10; ++$i) { $blogArticleRecords[] = ['title' => 'Article #' . ($i + 1), 'description' => 'Description of Article #' . ($i + 1), 'content' => 'Content of Article #' . ($i + 1)]; } foreach ($blogArticleRecords as $blogArticleRecord) { $blogArticle = new BlogArticle(); $blogArticle->setTitle($blogArticleRecord['title']); $blogArticle->setDescription($blogArticleRecord['description']); $blogArticle->setContent($blogArticleRecord['content']); $blogArticle->setImageUrl(''); $blogArticle->setPublicationDate(new \DateTime()); $manager->persist($blogArticle); $manager->flush(); $this->referenceRepository->addReference('blog-article-' . $blogArticle->getId(), $blogArticle); } }
/** * @test */ public function getAllPostsSuccess() { $blogs = new ArrayCollection(); $blog_article = new BlogArticle(); $blog_article->setId(1); $blog_article->setTitle('test'); $blog_article->setContent('content'); $blog_article->setCategory($this->createCategory(1)); $blogs->add($blog_article); $blog_article = new BlogArticle(); $blog_article->setId(2); $blog_article->setTitle('test_2'); $blog_article->setContent('content_2'); $blog_article->setCategory($this->createCategory(1)); $blogs->add($blog_article); $this->repository->expects($this->once())->method('findAll')->will($this->returnValue($blogs)); $posts = $this->blog_service->getAllPosts(); $post = $posts->first(); $this->assertCount(2, $posts->toArray()); $this->assertInstanceOf('AppBundle\\Entity\\BlogArticle', $post); $this->assertEquals(1, $post->getId()); }