这适用于刀片,但我怎么能在树枝上做到这一点? Twig抛出以下错误:“打开的括号未正确关闭 . 意外的标记”标点符号“值”:“(”标点符号“预期值为”)“)”
<li {{ (Request::is('admin/users') ? 'class=active' : '') }}> <a href="{{ route('users') }}"> Users </a> </li>
Twig桥为laravel的 Request 门面提供了延伸 . 它还提供其他扩展 . 点击这里:https://github.com/rcrowe/TwigBridge#extensions
Request
而不是 :: 你需要像_423786这样使用它:
::
{{ request_is('admin/users') ? 'class=active' }}
您可以在树枝内访问请求数据 . 此示例适用于Symfony3中的Twig .
{% if app.request.requestUri == "admin/users" %} class='active'{% endif %}
或作为三元运营商
{{ app.request.requestUri == "admin/users" ? 'class="active"' }}
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>
我自己找到了答案 . 我正在使用Laravel 5.1,使用rcrowe / TwigBridge . 我能够做到这一点:
{{ app.request.is('admin/users') ? 'class=active' }}
额外的括号不是问题 . 这是一个向你展示的TwigFiddle:
https://twigfiddle.com/623sqv
三元组比使用if语句容易得多,并且您的代码得到了显着简化 . 您可以在JSON and Twig Ternary Operator上的文章和Using null-coalescing operator中阅读相关内容 .
你只需要总是弄清楚如何正确地进行三元比较 . 希望这可以帮助!
5 回答
Twig桥为laravel的
Request
门面提供了延伸 . 它还提供其他扩展 . 点击这里:https://github.com/rcrowe/TwigBridge#extensions而不是
::
你需要像_423786这样使用它:您可以在树枝内访问请求数据 . 此示例适用于Symfony3中的Twig .
或作为三元运营商
Twig中的if语句与PHP的if语句相当 .
在最简单的形式中,您可以将它用于多个分支elseif,否则可以像在PHP中一样使用 . 您也可以在那里使用更复杂的表达式:
如上所述:
但是你的例子还可以,你只需要摆脱额外的括号ex:
我自己找到了答案 . 我正在使用Laravel 5.1,使用rcrowe / TwigBridge . 我能够做到这一点:
额外的括号不是问题 . 这是一个向你展示的TwigFiddle:
https://twigfiddle.com/623sqv
三元组比使用if语句容易得多,并且您的代码得到了显着简化 . 您可以在JSON and Twig Ternary Operator上的文章和Using null-coalescing operator中阅读相关内容 .
你只需要总是弄清楚如何正确地进行三元比较 . 希望这可以帮助!