2014-03-30 3 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를 컨트롤러의 아카이브 작업 매개 변수에 추가 할 수 있습니다. 그러나 게시물에 날짜를 연결하는 나뭇 가지 부분은 진행 방법이 확실하지 않은 곳입니다. –

관련 문제