Bonjour,

Alors voilà, je gère des permissions avec des "policy" et notemment certaines sont sauvegardées en base de donnée. Pour simplifier le tir, je récupère les permissions avec un DB::select et non avec les liaisons. (En faite, dans certaines conditions, un utilisateur à le droit de taguer un post)

public function apply(User $user, Tag $tag)
    {
        if(!isset($user->permissions)){
            $user->permissions = \DB::select('...');
        }
        // La suite de la logique
    }

Et cela marche bien, il ne refait pas la requête à chaque tour.

Le problème, c'est que plus loins dans mon code, je dois sauvegarder mon utilisateur (\Auth::user()->save()).

Dès lors, il essaye de mettre les permissions dans la table utilisateurs, mais puisque le champ n'existe pas, ça ne fonctionne pas.

Je recherche donc un moyen qu'il n'envoie pas les permissions, un peu à la manière de l'eager loading.

Merci d'avance à tous

10 réponses


Salut,

Je n'ai pas bien compris ton souci, tu as un champ 'permissions' dans ta table Users c'est bien ça ? Et tu n'arrives pas à le compléter ? Il est bien défini dans l'array $fillable du model User ?

AlexJM
Auteur

Merci de ta réponse,

Rah je me suis mal exprimé.
En gros j'aimerais pouvoir faire comme l'eager loading mais avec une requête tierce, pouvoir le stocker dans l'utilisateur sans l'envoyer en db lors d'un save, je sais pas si tu vois ce que je veux dire ?

Stoker les infos relatives à l'utilisateur et à ses permissions en session en somme ?

AlexJM
Auteur

Pas vraiment en session puisque la session "resterait" au fur et à mesure des pages

Si je ne m'abuse le but des permissions est de rester quelque chose de figé donc je ne comprends pas l'intérêt.

AlexJM
Auteur

C'est à dire rester figé ?

C'est à dire que des permissions sont normalement 'actées' avant, tu n'en donne pas en live (enfin tu peux mais c'est c'est bizarre ^^)

AlexJM
Auteur

En faite c'est un forum, il y a un système de tags et certains tags peuvent être mis dans certaines catégories par certains groupes d'utilisateurs, donc les coder "en dur" serait assez long :/

Quel rapport entre des tags et des permissions ?

AlexJM
Auteur

C'est les permissions pour les tags que je veux """eager load"""