3

我正在使用 symfony2、教义、knp 分页器和安全选民。在我的应用程序中,每个用户都有一些孩子。我应该显示属于当前用户的孩子列表(由当前登录的用户定义)。

所以我创建了一个安全投票者,它只授予用户访问它自己的孩子的权限。它在这种情况下非常有效:

if ($this->get('security.context')->isGranted('view', $child))

或者

{% for entity in pagination if app.security.isGranted('view', child) %}

可以想象,分页器无法正常工作,因为我根本没有在当前页面显示孩子。因此,我的分页器变成了垃圾。

我看到两种可能的解决方案:

  • 在查询阶段过滤实体。问题是如何在学说查询构建器中使用isGranted
  • 用分页器做一些事情,消除适当不需要的孩子

我意识到我可以修改我的查询添加类似->andWhere('c.parent == :user')但这个列表工具非常通用,用于列出数十种不同的关系,如user-childuser-group- town-ordersuser-post-tagsuser-films

4

0 回答 0