首页 文章

如何使用php inline和twig模板?

提问于
浏览
0

这适用于刀片,但我怎么能在树枝上做到这一点? Twig抛出以下错误:“打开的括号未正确关闭 . 意外的标记”标点符号“值”:“(”标点符号“预期值为”)“)”

<li {{ (Request::is('admin/users') ? 'class=active' : '') }}>
    <a href="{{ route('users') }}">
        Users
    </a>
</li>

5 回答

  • 0

    Twig桥为laravel的 Request 门面提供了延伸 . 它还提供其他扩展 . 点击这里:https://github.com/rcrowe/TwigBridge#extensions

    而不是 :: 你需要像_423786这样使用它:

    {{ request_is('admin/users') ? 'class=active' }}
    
  • 0

    您可以在树枝内访问请求数据 . 此示例适用于Symfony3中的Twig .

    {% if app.request.requestUri == "admin/users" %} class='active'{% endif %}
    

    或作为三元运营商

    {{ app.request.requestUri == "admin/users" ? 'class="active"' }}
    
  • 2

    Twig中的if语句与PHP的if语句相当 .

    在最简单的形式中,您可以将它用于多个分支elseif,否则可以像在PHP中一样使用 . 您也可以在那里使用更复杂的表达式:

    {% if kenny.sick %}
        Kenny is sick.
    {% elseif kenny.dead %}
        You killed Kenny! You bastard!!!
    {% else %}
        Kenny looks okay --- so far
    {% endif %}
    

    如上所述:

    https://twig.sensiolabs.org/doc/2.x/tags/if.html

    但是你的例子还可以,你只需要摆脱额外的括号ex:

    <li {{ Request::is('admin/users') ? 'class=active' : '' }}>
    <a href="{{ route('users') }}">
        Users
    </a>
    
  • 0

    我自己找到了答案 . 我正在使用Laravel 5.1,使用rcrowe / TwigBridge . 我能够做到这一点:

    {{ app.request.is('admin/users') ? 'class=active' }}
    
  • 0

    额外的括号不是问题 . 这是一个向你展示的TwigFiddle:

    https://twigfiddle.com/623sqv

    三元组比使用if语句容易得多,并且您的代码得到了显着简化 . 您可以在JSON and Twig Ternary Operator上的文章和Using null-coalescing operator中阅读相关内容 .

    你只需要总是弄清楚如何正确地进行三元比较 . 希望这可以帮助!

相关问题