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 回答