Laravel blade 如果变量不为空则连接字符串

Laravel blade concatenate string if variable is not empty

如果给定变量不为空,我正在尝试向 link 添加一个 id 属性。为此,我使用了 inline-if 句子。

<li><a {{ $link['element_id'] }}  != "" ? {{"id=" . $link['element_id'] }} : '' href="{{ url($link['url']) }}">{{$link['name']}}</a></li>

输出:

尝试这样的事情:

<li>
    <a @if($link['element_id']!="") {{"id=" . $link['element_id'] }} @endif href="{{ url($link['url']) }}" >
        {{$link['name']}}
    </a>
</li>

但是如果你真的想通过 "inline-if" 来完成(这应该可行):

您的问题是您没有将 php 放在括号中。

<li>
    <a {{ $link['element_id']!= "" ? "id=" . $link['element_id'] : ''}} href="{{url($link['url'])}}">
        {{$link['name']}}
    </a>
</li>

我相信您的问题是它超出了 php 本身。你试过使用

<li><a {{ $link['element_id'] != "" ? 'id=' . $link['element_id'] : ''}} href="{{ url($link['url']) }}">{{$link['name']}}</a></li>

还有一个好的做法是在 php 代码中使用一种类型的引号,最好是单引号。

您可以在 blade mustache 语法中使用条件:

<li><a id="{{ $link['element_id'] != '' ? $link['element_id'] : '' }} href="{{ url($link['url']) }}">{{$link['name']}}</a></li>

这个应该有效:

<li>
    <a id="{{ $link['element_id'] !== '' ? $link['element_id'] : null }}" href="{{ url($link['url']) }}">
        {{ $link['name'] }}
    </a>
</li>