问问题
137 次
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 回答