【问题标题】:Is it possible to set a new entity directly from twig?是否可以直接从树枝设置新实体?
【发布时间】:2017-11-09 15:54:07
【问题描述】:

有时我需要检查用户是否可以从 voter 发表评论,显然在代码的这一点上评论还不存在,但我仍然需要检查用户是否被允许评论与否。

从控制器我通常会做$this->isGranted('create', new Comment()) 但我应该如何在树枝上做同样的事情?我找不到明确的解释,我显然不能做{% if is_granted('create', new comment()) %}之类的事情。

有没有办法做到这一点,而无需从控制器中破解对象,例如从控制器渲染new Comment()?这样做可以让我避免在我的选民中出现大量意大利面条代码。

【问题讨论】:

  • 您可以使用 TwigSimple_Function 扩展 twig 这样做,您需要能够将任何 $this 作为对象传递给函数
  • 将新评论传递给您的树枝模板可能更容易。或者在控制器中进行检查并将结果作为变量传递。

标签: symfony twig symfony2-voter


【解决方案1】:

你可以用Symfony Twig Extensions扩展树枝

查看此文档链接:

Symfony Twig Extensions

在你的树枝中,你可以像这样使用is_granted

{{ is_granted(role, object = null, field = null) }}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多