58 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| namespace KekRozsak\FrontBundle\Controller;
 | |
| 
 | |
| use Symfony\Bundle\FrameworkBundle\Controller\Controller;
 | |
| use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
 | |
| use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
 | |
| 
 | |
| /**
 | |
|  * @Route("/blog")
 | |
|  */
 | |
| class BlogController extends Controller
 | |
| {
 | |
|     /**
 | |
|      * @Route("/", name="KekRozsakFrontBundle_blogList")
 | |
|      * @Template()
 | |
|      */
 | |
|     public function listAction()
 | |
|     {
 | |
|         $query = $this
 | |
|                     ->getDoctrine()
 | |
|                     ->getEntityManager()
 | |
|                     ->createQuery('
 | |
|                         SELECT
 | |
|                             p
 | |
|                         FROM
 | |
|                             KekRozsakFrontBundle:BlogPost p
 | |
|                         LEFT JOIN
 | |
|                             p.group g
 | |
|                         LEFT JOIN
 | |
|                             g.members m
 | |
|                         WHERE
 | |
|                             (
 | |
|                                 (
 | |
|                                     p.group IS NULL
 | |
|                                     OR m.user = :user
 | |
|                                 )
 | |
|                                 AND p.published = true
 | |
|                             )
 | |
|                             OR p.createdBy = :user
 | |
|                     ');
 | |
|         $query->
 | |
|             setParameter(
 | |
|                     'user',
 | |
|                     $this
 | |
|                         ->get('security.context')
 | |
|                         ->getToken()
 | |
|                         ->getUser()
 | |
|                         ->getId()
 | |
|                 );
 | |
|         $blogPosts = $query->getResult();
 | |
| 
 | |
|         return array(
 | |
|             'posts' => $blogPosts,
 | |
|         );
 | |
|     }
 | |
| }
 | |
| 
 |