我们的用户可以将其他产品作为关联添加到产品中。对于我们的大多数关联类型,在网格中显示所有产品没有意义,他们应该只选择一个系列的产品。
用户可以在 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 中更改产品网格的过滤器?
或者有没有更好的方法来实现我的目标?
最佳答案
该网格的配置位于 here ( EnrichBundle/Resources/config/datagrid/association_product.yml
)。您可以自定义 source.repository_method
参数以在 product repository(例如 createAssociationDatagridQueryBuilderWithFamily
)中使用您的自定义查询。当产品被传递到这个存储库方法时,您将能够检索它的系列。
这是第一步,但您似乎只想对特定产品执行此操作。
两种解决方案:
association_product.yml
文件的末尾,您可以复制第一个网格配置并将其重命名(例如 association-with-family-product-grid
)。然后在您的模板中,您可以加载另一个矿石(网格选项是 here )。 不要忘记在数据网格配置操作后清除缓存,您就可以开始了!
关于javascript - Akeneo:以编程方式选择网格过滤器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32089803/