2014-03-30 170 views
1

我一直在努力爲博客網站設置博客存檔,其中使用日期點擊和相應的帖子出現。 (請參閱圖片)我知道我需要檢索我的所有博客帖子並按日期排序,但之後的步驟對我來說很模糊。拿這些數據,然後按月份/年份排序並將它傳遞給模板是我遇到的問題。Symfony2 - 建立博客檔案

有人可以闡明我做錯了什麼或提供一個簡單的工作示例嗎?

enter image description here

什麼我迄今:

public function archiveAction() 
    { 
     $em = $this->getDoctrine()->getManager(); 

//  $query = $em->getRepository('AcmeProjectBundle:Blog') 
//   ->findAll(); 

     $blogs = $em->getRepository('AcmeProjectBundle:Blog') 
      ->getLatestBlogs(); 

     if (!$blogs) { 
      throw $this->createNotFoundException('Unable to find blog posts'); 
     } 

     foreach ($blogs as $post) { 
      $year = $post->getCreated()->format('Y'); 
      $month = $post->getCreated()->format('F'); 
      $blogPosts[$year][$month][] = $post; 
     } 

//  exit(\Doctrine\Common\Util\Debug::dump($month)); 

     return $this->render('AcmeProjectBundle:Default:archive.html.twig', array(
      'blogPosts' => $blogPosts, 
     )); 
    } 
+0

好的,這似乎很好。你在哪裏遇到麻煩? – DonCallisto

+0

用戶在一個月內點擊與該日期相關的正確帖子時,用適當的日期設置小枝操作的下一步。 –

回答

1

你要告訴你的archiveAction該月實際點擊,所以你需要一個或多個參數給它:http://symfony.com/doc/current/book/controller.html#route-parameters-as-controller-arguments(我會做類似於/ archive/{year}/{month} /爲我的參數,但這取決於您。)然後,當有人去您myblog.com/archive/2014/04時,他們會看到這些帖子。

接下來,您要顯示該月的帖子。爲此,您需要使用Doctrine Query構建器。這裏有一個關於它的答案,但是你可以搜索更多關於查詢日期的信息。 Select entries between dates in doctrine 2

+0

我可以理解路由部分的含義,並將$ year和$ month添加到控制器中的歸檔操作參數中,但將日期鏈接到帖子的部分是我不確定如何繼續操作的地方。 –