Laravelブレードテンプレートにインラインifおよびelse ifステートメントを指定する構文はありますか?
通常、ifおよびelseステートメントの構文は次のとおりです。
{{ $var === "hello" ? "Hi" : "Goodbye" }}
Else ifステートメントを含めたいのですが、これは可能ですか?
{{ $var === "hello" ? "Hi" : "Goodbye" else if $var ==="howdie ? "how" : "Goodbye""}}
laravelブレードでこのコードを使用できます:
{{ $var === "hello" ? "Hi" : ($var ==="howdie ? "how" : "Goodbye") }}
すべての短いコードが良いものではないことを覚えておいてください。あなたの例では、あなたが言っているので、これをヒットする単一の方法はありません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"; }
これは間違っています。それぞれ2つのelse
sを使用することはできません。次のような条件を構築しました
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 */ );
2番目の条件では(
、)
に注意してください。
ご覧のとおり、コードはトリッキーで読みにくく、トレースが困難です。複数の条件を切り替えてロジックを修正する場合は、if else if
を使用してください。
<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")selected @else not selected @endif
私はそれが1行に2つのif elseステートメントがあると信じています。インラインにする方法を想像することはできませんが、このようなことをしたでしょう。
@if($var=="hello" || $var=="Hi")
{{$var === "hello" ? "Hi" : "Howdie"}}
@else
{{"Goodbye"}}
@endif