Blade inline if и else if statement

Есть ли синтаксис для указания inline if и else if в шаблоне blade-сервера Laravel?

Обычно синтаксис для выражения if и else:

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

Теперь я хотел бы включить else if statement, возможно ли это?

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

Ответ 1

Вы можете использовать этот код в ларавом лезвии:

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

Ответ 2

помните, что не каждый короткий код является хорошим. в вашем примере нет единственного способа попасть в этот 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, если у вас более одного переключения условий и пересмотреть свою логику.

Ответ 3

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

Попробуйте mario!

Ответ 4

Я считаю, что это два оператора if else в одной строке. Я не могу представить, как сделать его встроенным, но я бы сделал что-то вроде этого.

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

Ответ 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>

@if ($settingsData-> дней == "10") выбрано @еще не выбрано @endif