刀片内联if和else if语句

时间:2017-03-26 04:44:04

标签: laravel-5 laravel-blade

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

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

{{ $var === "hello" ? "Hi" : "Goodbye" }}

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

 {{ $var === "hello" ? "Hi" : "Goodbye" else if $var ==="howdie ? "how" : "Goodbye""}}

4 个答案:

答案 0 :(得分:23)

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

{{  $var === "hello" ? "Hi" : ($var ==="howdie ? "how" : "Goodbye") }}

答案 1 :(得分:4)

记住不是每个短代码都是好的。在你的例子中,没有单一的方法可以点击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"; }

这是错误的,你不能分别使用两个else。你构建了像

这样的条件
if (condition) {
    # code...
} elseif (condition) {
    # code...
} else {

}

三元运算符中的相同

(condition) ? /* value to return if first condition is true */ 
: ((condition) ? /* value to return if first condition is true */ 
: /* value to return if condition is false */ );

并注意第二个条件中的()

正如您所看到的,您的代码将变得棘手,难以理解且难以追踪。如果您有多个条件切换,请使用if else if 并修改你的逻辑。

答案 2 :(得分:1)

<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>

@if($ settingsData-> days ==“ 10”)已选择@else未选择@endif

答案 3 :(得分:-1)

我相信这是一行中的两个if else语句。我想不出方法让它内联,但我会做这样的事情。

@if($var=="hello" || $var=="Hi")
   {{$var === "hello" ? "Hi" : "Howdie"}}
@else
   {{"Goodbye"}}
@endif