Différences
Ci-dessous, les différences entre deux révisions de la page.
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. | ||
+ | ---- |