web-dev-qa-db-fra.com

Blade inline if et else if

Existe-t-il une syntaxe pour spécifier l'instruction if et else if en ligne dans le modèle de lame Laravel?

Normalement, la syntaxe de l'instruction if and else serait:

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

Je voudrais maintenant inclure une autre déclaration if, est-ce possible?

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

Vous pouvez utiliser ce code dans la lame laravel:

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

rappelez-vous que tous les codes courts ne sont pas bons. dans votre exemple, il n'y a pas de moyen unique pour atteindre ce else if parce que tu dis

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"; }

c'est faux, vous ne pouvez pas utiliser deux elses respectivement. vous avez structuré vos conditions comme

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

}

la même chose chez les opérateurs ternaires

(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 */ );

et méfiez-vous de (, ) dans la deuxième condition.

et comme vous le voyez, votre code va être difficile, illisible et difficile à tracer. alors utilisez le if else if si vous avez plusieurs conditions de commutation et révisez votre logique.

4
M.Elwan
<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") sélectionné @else non sélectionné @endif

0
YoJey Thilipan

Je pense que ce sont deux déclarations sinon sur une seule ligne. Je ne peux pas imaginer un moyen de le rendre en ligne, mais j'aurais fait quelque chose comme ça.

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