0
4

1 回答 1

0

object.getPermissions.check(app.user)意味着无论方法getPermissions()返回什么,代码都期望返回的值有一个方法check()

您的问题的两种解决方案(一种接近您想要的,另一种更清洁):

  • 创建一个Twig 过滤器以具有诸如object.getPermissions|check(app.user)但我个人不喜欢它的语法。
  • 在对象上创建一个完全符合您期望的方法。一个不言自明的例子是一个方法名称,比如hasViewAccess($user)orhasCreateAccess($user)所以你可以很容易地做到{% if object.hasCreateAccess(app.user) %}

如果您需要服务容器,那么您可以创建一个hasCreateAccess针对对象调用的 Twig 过滤器。它看起来像这样{% if object|hasCreateAccess(app.user) %}。这绝对是最灵活的解决方案。

于 2013-07-06T04:48:59.997 回答