Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
web:blade [2018/11/13 10:16]
irhamdj créée
web:blade [2018/11/20 08:19] (Version actuelle)
dmillot [Formulaires]
Ligne 1: Ligne 1:
 +====== BLADE ======
 **Rappel :** Bien penser à mettre **.blade** dans l'​extension du fichier. (ex:** //​index.blade.php//​**) **Rappel :** Bien penser à mettre **.blade** dans l'​extension du fichier. (ex:** //​index.blade.php//​**)
 +
 +Les balises PHP traditionnelles sont changées dans Blade. <​code><?​php ?> se transforme en : {{ }}</​code>​
 +
 +----
 +
 +Avec Blade on a la possibilité liées deux vues entres elles. Comme par exemple, le header/​footer avec le body.
 +
 +<​code>​
 +<​body>​
 +     ​@yield('​content'​)
 +</​body>​
 +</​code>​
 +
 +Le mot-clé **"​@yield"​** va ici appeler la section** content**.
 +<​code>​
 +@extends('​template'​)
 +@section('​content'​)
 +      //Code
 +@endsection
 +</​code>​
 +Le mot-clé **"​@extends"​** indique que la page actuelle est une extension appelée dans la vue contenant le **@yield**. (La vue comprise dans les parenthèses du **"​@yield"​**).
 +Cela permet d'​éviter de réécrire le header et le footer sur chaque page du site.
 +----
 +===== Conditions =====
 +  * La condition **IF**
 +<​code>​
 +@if (condition)
 +    // faire quelque chose
 +@else
 +    // faire autre chose
 +@endif
 +</​code>​
 +  * La condition **ELSEIF**
 +<​code>​
 +@if (condition)
 +    // faire quelque chose
 +@elseif (condition 2)
 +    // faire autre chose
 +@elseif (condition 3)
 +    // faire autre chose
 +@else
 +    // faire autre chose si toutes les conditions sont fausses
 +@endif
 +</​code>​
 +----
 +===== Boucles =====
 +Voici les différentes boucles proposées par blade :
 +  * La boucle **FOREACH**
 +<​code>​
 +@foreach ($collection as $variable)
 +    // faire quelque chose
 +@endforeach
 +</​code>​
 +  * La boucle **FORELSE**
 +<​code>​
 +@forelse ($collection as $variable)
 +    // faire quelque chose
 +@empty
 +    // faire autre chose si la collection est vide
 +@endforelse
 +</​code>​
 +  * La boucle **WHILE**
 +<​code>​
 +@while (condition)
 +    // faire quelque chose
 +@endwhile
 +</​code>​
 +
 +----
 +===== Formulaires =====
 +Lors de l'​utilisation d'un formulaire, il est important de sécuriser l'​envoi des données. Afin d'​éviter que une personne ajoute des données a notre base de données factices (ou suppression,​ ou modification). ​
 +
 +Pour cela il existe **"​@csrf"​**(Cross-site request forgery) qui est un **//jeton d'​authentification//​** (ou token en Anglais) proposé par Blade. Si il n'est pas présent dans le formulaire, le code de ce dernier ne s’exécutera pas.
 +
 +Il existe différentes façons de générer un formulaire.
 +----
 +=== Première méthode ===
 +<​code>​
 +<form action="​{{action('​MagazineController@destroy',​ $donnees['​id'​])}}"​ method="​post">​
 +    @csrf
 +    <input name="​_method"​ type="​hidden"​ value="​DELETE">​
 +    <button class="​btn btn-danger">​Supprimer</​button>​
 +</​form>​
 +</​code>​
 +----
 +=== Deuxième méthode ===
 +Cette méthode nécessite l'​installation du package [[web:​commandes_du_terminal#​packages|laravelcollective]].
 +<​code>​
 +{!! Form::​model(['​action'​ => '​MagazineController@destroy',​ $donnees->​id]) !!}
 +{!! Form::​submit('​Supprimer'​) !!}
 +{!! Form::​close() !!}
 +</​code>​
 +Le jeton **CSRF** est généré automatiquement dans cette méthode.
 +----
 +===== Commentaires =====
 +Blade propose sa propre définition des commentaires dans une vue.
 +<​code>​
 +{{-- Commentaire --}}
 +</​code>​
 +Contrairement aux commentaires HTML, ce commentaire n’apparaîtra pas dans le code source de votre page.
 +----