Bonsoir, je voudrais savoir si c'était possible de faire des vérifications dans les templates blade "plus propre".

Voilà actuellement j'ai une vérification a faire pour vérifier que l'utilisateur est un homme ou une femme et j'aimerais changer la classe en fonction du sexe de l'utilisateur.

Actuellement je fait ça :

<h1 @if ($user->gender === 1) class="boy" @elseif ($user->gender === 2) class="girl" @endif></h1>

Mais je trouve pas ça très pratique, je voulais surtout savoir si c'était possible par example d'appeller une methode en faisais ça par example :

<h1 class="{{ who_is() }}></h1>

et mettre la vérification plus haut quelque part ainsi ça faciliterais la chose.

Merci bien :)

1 réponse


Bonjour,

j'ai eu besoin de la meme chose, j'ai alors cree un fichier contenant une fonction (un helper en quelque sorte que j'ai mis dans le repertoire app)

<?php

    /**
     * @param $model \Illuminate\Database\Eloquent\Model The Model instance to check.
     * @param $field string The name of the field to check against.
     * @return bool True if the date has been set, false if not.
     */
    function has_date($model, $field) {
        return $model->getOriginal($field) && ($model->getOriginal($field) !== '0000-00-00');
    }
?>

puis je l'ai rajoute dans le fichier composer.json de cette facon:

    "autoload": {
        "files": [
            "app/helpers.php"
        ]

Et dans ma vue, j'ai juste a mettre:

<div class="well {{ has_date($client, 'date_debut_abo') ? 'well-sm-x' : 'well-sm-x-warning' }}">

Ne pas oublier de faire:

composer dump-autoload

afin que cette fonction soit prise en charge.