我们的用户可以将其他产品添加到产品中作为关联.对于我们的大多数关联类型,在网格中显示所有产品没有意义,他们应该只选择来自一个家庭的产品.
用户可以在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文件的末尾,您可以复制第一个网格配置并重命名它(与系列产品网格关联)例如).然后在你的模板中,你可以加载另一个(网格选项是here).
不要忘记在datagrid配置操作后清除缓存,你很高兴!
标签:javascript,datagrid,akeneo 来源: https://codeday.me/bug/20190623/1272740.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。