Une syntaxe simplifiée dans vos vues Laravel avec Blade

Blade est le moteur de vue utilisé par Laravel. Il offre une syntaxe simplifiée pour exécuter de petits bouts de code dans une vue, par exemple pour vérifier une condition avant d'afficher une information ou encore pour boucler dans une collection.

▼Publicité

Par exemple, il serait possible de boucler dans une collection à l'aide de la syntaxe PHP :

Vue Laravel sans Blade

<?php foreach($produits as $produit) : ?>

    <li><?= $produit->description; ?></li>

<?php endforeach; ?>

Avec Blade, le code est beaucoup plus clair :

Vue Laravel (Blade)

@foreach($produits as $produit)

    <li>{{ $produit->description }}</li>

@endforeach

ABC de la syntaxe Blade

À la base, tout ce que vous écrivez dans une vue sera transmis tel quel par Blade au navigateur. Vous pouvez donc entrer sans plus de flafla les balises HTML et le texte statique.

Il existe cependant des exceptions afin de permettre d'entrer des commentaires, d'afficher des variables, de tester des conditions et de faire des boucles.

Les commentaires

Lorsque vous ajoutez un commentaire avec Blade, vous êtes assurés qu'il ne fera pas partie du code HTML généré.

Vue Laravel (Blade)

{{-- menu principal ************************************************************************* --}}

L'exécution de code PHP

Il est possible d'exécuter des fonctions PHP en les plaçant entre les symboles {{ et }}.

Vue Laravel (Blade)

{{ route('produits.index') }}

Les variables

Pour afficher le contenu d'une variable (que le contrôleur a transmis à la vue), simplement placer son nom entre {{ et }}.

Vue Laravel (Blade)

{{ $produit->description }}

Remarquez que Blade se charge automatiquement de protéger contre certaines attaques XSS en appliquant la fonction htmlentities() sur le contenu ainsi affiché.

Valeurs non protégées (unescaped data)

Il peut arriver, dans un contexte particulier, que les variables doivent être affichées sans passer par htmlentities(). Vous pouvez y arriver comme suit :

Vue Laravel (Blade)

{!! $variable !!}

Attention : avec les points d'exclamation, votre site devient vulnérable aux attaques XSS. Vous devriez toujours utiliser les doubles accolades à moins d'avoir un besoin très particulier.

La variable est-elle non nulle ?

Pour vérifier si une variable existe :

Vue Laravel (Blade)

@if isset($variable)

Valeur à utiliser si la variable est nulle

Il est possible de spécifier une valeur à utiliser lorsqu'une variable est nulle. L'opérateur « ?: » est un opérateur binaire connu sous le nom opérateur Elvis.

Vue Laravel (Blade)

{{ $variable ?: 'Valeur à utiliser si nul' }}

Le même résultat sera obtenu à l'aide de la syntaxe suivante :

Vue Laravel (Blade)

{{ $variable or 'Valeur à utiliser si nul' }}

ou encore avec l'opérateur ternaire :

Vue Laravel (Blade)

{{ isset($variable) ? $variable : 'Valeur à utiliser si nul' }}

La collection contient-elle au moins un élément ?

Pour vérifier si une collection contient au moins un élément :

Vue Laravel (Blade)

@if (!$produits->count())

    <p>Il n'y a présentement aucun produit.</p>

    <div><a class="stylebouton" href="{{ route('produits.create') }}">Ajouter</a></div>

@else

    ...

@endif

Les structures de contrôle

Pour tester une condition :

Vue Laravel (Blade)

@if (...)

    ...

@elseif (...)

    ...

@else

    ...

@endif

Pour boucler dans les éléments d'une collection :

Vue Laravel (Blade)

@foreach ($produits as $produit)

    ...

@endforeach

Pour plus d'information

« Blade Templates ». Laravel. https://laravel.com/docs/master/blade

Merci de partager ! Share on FacebookTweet about this on TwitterShare on Google+Share on LinkedInPin on PinterestShare on StumbleUponEmail this to someone
Catégories

Laisser un commentaire

8 + 3 =