【问题标题】:filter list of items symfony筛选项目列表 symfony
【发布时间】:2017-08-03 02:49:05
【问题描述】:

我正在构建一个用户发布帖子的 Web 应用程序。该帖子包括类别和位置。我可以分别查看类别和位置的帖子。

我想要做的是过滤视图以仅列出来自某个位置的类别列表。例如,当我单击鞋子类别时,我想过滤以仅显示美国位置而留下其他位置。谢谢

控制器:

  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>

{% 端块 %}

【问题讨论】:

    标签: symfony doctrine twig entitymanager symfony-routing


    【解决方案1】:

    答案就在这里:

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

    请注意,我不知道您的 Category 或 Post 实体,因此可能会有些不同,但想法就在这里。

    【讨论】:

      猜你喜欢
      • 2011-05-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多