2017-08-03 106 views
0

我正在构建一个Web应用程序,用户发表帖子。该帖子包括类别和位置。我可以单独查看类别和位置的帖子。过滤项目列表symfony

我想要做的是过滤视图,只列出一个位置的类别列表。例如当我点击鞋类我想过滤只显示美国位置离开其他地点。由于

控制器:

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

    $category = $em->getRepository('KaftanAvenueBundle:Category')->find($name); 

    return $this->render('@KaftanAvenue/Page/categoryitems.html.twig', 
     ['category' => $category]); 

} 


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

    $location = $em->getRepository('KaftanAvenueBundle:State')->find($name); 

    return $this->render('@KaftanAvenue/Page/locationitems.html.twig', 
     ['location' => $location]); 

} 

路由:

categoryitems: 
    path: /category/{name} 
    defaults: {_controller: KaftanAvenueBundle:Page:catergoryitems} 


locationitems: 
    path: /location/{name} 
    defaults: {_controller: KaftanAvenueBundle:Page:locationitems} 

树枝:

{% extends "::base.html.twig" %} 

{% block body %} 
    <div class="container"> 
     {{ category.name }} 
    <div class="row"> 
     {% for entry in category.ads %} 
      <div class="media"> 
       <div class="media-left"> 
        <img src="{{ asset('images/'~ entry.imageName) }}" class="media-object" style="width:100px"> 
       </div> 
       <div class="media-body"> 
        <h4 class="media-heading" ><a style="color: #550000" href="{{ path('view',{id : entry.id}) }}">{{ entry.title }}</a></h4> 
        <p>Price: {{ entry.price }} 
         <br> 
         Created: {{ entry.timestamp | date('d/m/y') }} 
         <br> 
        </p> 
       </div> 
      </div> 
      <hr> 
     {% endfor %} 
    </div> 
</div> 

{% endblock %} 

index.html.twig

{% extends "::base.html.twig" %} 

{% block body %} 

<header class="page-heading"> 

    <div class="container"> 


    </div> 
</header> 


<div class="container marketing"> 

    <div class="row"> 
     <div class="col-lg-2"> 
      <a href="{{ path('categoryitems',{ 'name' : category.id}) }} "> <img class="img-circle" src="data:image/gif;base64,R0lGODlhAQABAIAAAHd3dwAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==" alt="Generic placeholder image" width="140" height="140"> 
      <h4>Cap</h4></a> 

     </div> 
     <!-- /.col-lg-4 --> 

    </div> 

    </div> 

{%端块%}

回答

0

答案就在这里:

$category = $em->getRepository('KaftanAvenueBundle:Category')->find($name); 

为什么你会在这样一个良好的道路停车让类别,而不是与该类别视图帖子?

我想通过类似更换:

$category = $em->getRepository('KaftanAvenueBundle:Category')->findOneByName($name); 

$posts = $em->getRepository('KaftanAvenueBundle:Post')->findByCategory($category); 

return $this->render('@KaftanAvenue/Page/categoryitems.html.twig', 
     ['posts' => $posts]); 

请注意,我也不知道你的等级也不邮政的实体,所以它可能是一个有点不同,但这个想法是在这里。