prestshop创建网格



我尝试在Prestashop 1.7中创建一个自定义网格,而不使用查询生成器。这可能吗?例如从array,collection或json data.

这是来自prestshop文档的教程。https://devdocs.prestashop.com/1.7/development/components/grid/

# Register ProductQueryBuilder
prestashop.core.grid.query.product_query_builder:
class: 'PrestaShopPrestaShopCoreGridQueryProductQueryBuilder'
parent: 'prestashop.core.grid.abstract_query_builder'
arguments:
- "@=service('prestashop.adapter.legacy.context').getContext().language.id"
- "@=service('prestashop.adapter.legacy.context').getContext().shop.id"
public: true

# Configure our Grid Data factory to use the query builder that we registered above
prestashop.core.grid.data.factory.product_data_factory:
class: 'PrestaShopPrestaShopCoreGridDataFactoryDoctrineGridDataFactory'
arguments:
- '@prestashop.core.grid.query.product_query_builder' # service id of our query builder
- '@prestashop.core.hook.dispatcher' # every doctrine query builder needs the hook dispatcher
- '@prestashop.core.grid.query.doctrine_query_parser' # parser to get the raw SQL query
- 'products' # this should match your grid id, in our case it's "products"

替换ProductQueryBuilder的想法与数组,集合或json数据?谢谢你。

在这种情况下,我使用了一个DataTable

可以使用DataTable从模板文件中生成的表中删除。这是使它工作的最快方法,但是如果您有很多数据,它可能会消耗一些内存。

官方的DataTable文档是一个很好的开始:https://datatables.net/examples/data_sources/dom.html

您也可以使用基于AJAX的DataTable来动态地完成它,但是您必须自己考虑安全性和会话过期。

https://datatables.net/examples/ajax/

这些视频可能会给您一些设置DataTable和AJAX后端的想法。注意第二个视频中的安全细节。

https://www.youtube.com/watch?v=186DFIV_IDs

https://www.youtube.com/watch?v=OoTqmzi6-1g

最新更新