【问题标题】:Symfony Twig datatableSymfony Twig 数据表
【发布时间】:2019-02-04 21:15:10
【问题描述】:

我正在构建产品信息管理器 (PIM)。尝试使用 symfony 框架来构建它。我目前面临的问题。我正在使用下面的树枝文件示例的数据表显示我的产品信息。

{% set title = 'Product List' %}
{% extends 'table.twig' %}

{% block h1_page_header %} Product List {% endblock %}
{% block panel_heading %} Product List {% endblock %}
{% block thead %}
    <tr>
        <th>ID</th>
        <th>Name</th>
        <th>SKU</th>
        <td>Actions</td>
    </tr>
{% endblock %}
{% block tbody %}
    {% for product in products %}
        <tr>
            <td>
                {{ product.id }}
            </td>
            <td>
                {{ product.name }}
            </td>
            <td>
                SKU
            </td>
            <td>
                <a href="{{ path('app_product_getproduct', {'id': product.id}) }}" class="btn btn-success btn-sm" >
                    <span class="glyphicon glyphicon-pencil"></span>
                </a>
                <a href="{{ path('app_product_delete', {'id': product.id}) }}" class="btn btn-danger btn-sm" onclick="return confirm('Are you sure?')">
                    <span class="glyphicon glyphicon-trash"></span>
                </a>

            </td>
        </tr>
    {% endfor %}

我现在的问题是我的数据库现在几乎有 60-70K。但是由于我想在数据表中显示的 70K 产品,我的产品/列表/页面没有呈现。它适用于少数 2-4k 产品,但在此之上它不会渲染。

我进行了一项研究,发现我可以解决服务器端处理的问题。但是我的问题是有更好的解决方案/替代方案来实现我的目标吗?

【问题讨论】:

  • 使用 knp 分页器进行分页
  • 对于较大的结果集,服务器端是最好的方法
  • 从长远来看,服务器端是最好的,你会有越来越多的产品,增长的问题。一旦你用服务器端解决了它,你就再也不会遇到这个问题了。。跨度>
  • 不确定你们对“处理服务器端”的建议是什么?
  • @DarkBee 可能是带有搜索等的服务器端分页

标签: php symfony datatables twig


【解决方案1】:

即使服务器端处理会有所帮助,一些导航器也可能难以一次渲染所有这些元素。从用户的角度来看,那并不有趣。没有人会滚动浏览所有 70k 产品。用户很懒:)

您应该实现分页、搜索栏和过滤器以呈现易于阅读的短列表。

如果你喜欢 JS,你可以实现一个更优雅的解决方案,比如无限滚动。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-29
    • 1970-01-01
    • 1970-01-01
    • 2017-07-14
    • 2016-06-24
    相关资源
    最近更新 更多