2017-08-03 4 views
0

私はユーザが投稿を行うWebアプリケーションを構築しています。投稿にはカテゴリと場所が含まれます。私はカテゴリーと場所のための記事を一度に見ることができます。アイテムのフィルタリストsymfony

私がしようとしているのは、場所からカテゴリリストのみを表示するためにビューをフィルタリングすることです。たとえば、私が靴のカテゴリーをクリックすると、他の場所から出ているUSAの場所だけを表示するためにフィルターをかけたいと思う。おかげ

コントローラー:

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]); 

それは少し違うかもしれないが、アイデアがここにあるので、私は、あなたのカテゴリーでもポストエンティティのいずれかを知らないことに注意してください。

関連する問題