4

我们的用户可以将其他产品作为关联添加到产品中。对于我们的大多数关联类型,在网格中显示所有产品是没有意义的,它们应该只选择一个系列中的产品。

用户可以在 Akeneo GUI 中按系列过滤产品,但如果过滤器以编程方式选择,它的工作量会减少并使我们的数据更加一致。

我会Pim/Bundle/EnrichBundle/Resources/views/Association/_associations.html.twig像这样修改代码:

var changeAssociation = function (associationId) {
    var $idField = $('#pim_product_edit_associations').find('input[type="hidden"][value="' + associationId + '"]');

    // 4 is an association example id where only one family should be displayed
    if(associationId == 4) {
        // TODO: Filter family in the product grid 
        // mediator.trigger('datagrid:???:' dataGrids.product.name);
    }

如何在 Javascript 中更改产品网格的过滤器?

还是有更好的方法来实现我的目标?

4

1 回答 1

4

此网格的配置位于此处( EnrichBundle/Resources/config/datagrid/association_product.yml)。您可以自定义source.repository_method参数以使用产品存储库中的自定义查询(createAssociationDatagridQueryBuilderWithFamily例如)。当产品被传递到这个存储库方法时,您将能够检索它的系列。

这是第一步,但您似乎只想在特定产品上这样做。

两种解决方案:

  • 您在存储库方法中决定(当您拥有产品时,您可以决定是否过滤它的系列)
  • 您决定模板:在这种情况下,您可以创建关联网格的副本(在association_product.yml文件末尾,您可以复制第一个网格配置并重命名(association-with-family-product-grid例如)。然后在您的模板中,您可以加载一个或其他(网格选项在这里)。

不要忘记在数据网格配置操作后清除缓存,一切顺利!

于 2015-08-19T08:34:23.383 回答