刀片内联if和else if语句

mar*_*rio 16 laravel-5 laravel-blade

是否有语法在Laravel刀片模板中指定内联if和else if语句?

通常,if和else语句的syntaxt将是:

{{ $var === "hello" ? "Hi" : "Goodbye" }}
Run Code Online (Sandbox Code Playgroud)

我现在想要包含if if语句,这可能吗?

 {{ $var === "hello" ? "Hi" : "Goodbye" else if $var ==="howdie ? "how" : "Goodbye""}}
Run Code Online (Sandbox Code Playgroud)

MoP*_*oPo 34

您可以在laravel刀片中使用此代码:

{{  $var === "hello" ? "Hi" : ($var ==="howdie ? "how" : "Goodbye") }}
Run Code Online (Sandbox Code Playgroud)

  • 如果我要在里面添加 HTML 标签怎么办?例如“<h1>再见</h1>”。它显示标签。 (2认同)

M.E*_*wan 8

请记住,并非每一个短代码都是好的。在你的例子中,没有单一的方法可以做到这一点,else if因为你说

if($var === "hello")
    { 
        // if the condetion is true
        "Hi";
    }
else
    { 
        // if the condetion is false
        "Goodbye";
    }
// error here
else if($var ==="howdie")
    { "how"; }
else
    { "Goodbye"; }
Run Code Online (Sandbox Code Playgroud)

这是错误的,您不能else分别使用两个s。你已经构建了你的条件,比如

if (condition) {
    # code...
} elseif (condition) {
    # code...
} else {

}
Run Code Online (Sandbox Code Playgroud)

在三元运算符中相同

(condition) ? /* value to return if first condition is true */ 
: ((condition) ? /* value to return if second condition is true */ 
: /* value to return if condition is false */ );
Run Code Online (Sandbox Code Playgroud)

并提防(,)在第二种情况下。

正如您所见,您的代码将变得棘手、不可读且难以追踪。因此,if else if如果您有多个条件切换并修改您的逻辑,请使用。


YoJ*_*pan 5

<select id="days" class="Polaris-Select__Input" name="days" aria-invalid="false">
    <option value="10" @if($settingsData->days == "10") selected @endif >at 10 Days</option>
</select>
Run Code Online (Sandbox Code Playgroud)

@if($settingsData->days == "10") 选中 @else 未选中 @endif


Rah*_*ran -1

我相信这是一行中的两个 if else 语句。我无法想象如何使其内联,但我会做这样的事情。

@if($var=="hello" || $var=="Hi")
   {{$var === "hello" ? "Hi" : "Howdie"}}
@else
   {{"Goodbye"}}
@endif
Run Code Online (Sandbox Code Playgroud)