recherche

Maison  >  Questions et réponses  >  le corps du texte

Quel est le rôle de $hidden dans l'ORM Eloquent de Laravel ?

À quoi sert $hidden ? Il est préférable de donner un exemple pour expliquer

黄舟黄舟2755 Il y a quelques jours518

répondre à tous(3)je répondrai

  • 巴扎黑

    巴扎黑2017-05-16 16:50:27

    La documentation est très claire. Masquer les attributs lors de la conversion en tableau ou JSON

    Parfois, vous souhaiterez peut-être limiter les données d'attribut qui peuvent apparaître sous forme de tableau ou au format JSON, telles que les champs de mot de passe. Ajoutez simplement l'attribut caché au modèle

    class User extends Model {
    
        protected $hidden = ['password'];
    
    }
    $user = user::find($userId);
    dump($user);//里面是木有password字段的

    répondre
    0
  • 大家讲道理

    大家讲道理2017-05-16 16:50:27

    Parfois, vous souhaiterez peut-être limiter les attributs inclus dans le tableau ou le formulaire JSON de votre modèle, tels que les mots de passe. Pour ce faire, ajoutez une définition de propriété cachée à votre modèle

    class User extends Model {
    
        protected $hidden = ['password'];
    
    }

    répondre
    0
  • PHPz

    PHPz2017-05-16 16:50:27

    Vous pouvez masquer n'importe quel contenu après le résultat de la requête Model toArray(). L'utilisation de base a été expliquée ci-dessus. Permettez-moi de parler de l'utilisation légèrement plus avancée que j'utilise habituellement
    1 Masquer un certain champ.
    2 Vous pouvez masquer la relation obtenue par la requête via la méthode with.
    3 Il peut également être utilisé avec $appends pour modifier le format des données de retour.
    Par exemple, il existe une table User et une table UserInfo Lors de l'interrogation, tous les champs de User + un certain champ ClomnX dans UserInfo sont obligatoires. Mais je ne souhaite pas renvoyer l’intégralité des informations UserInfo. (Bien sûr, il peut être traité de manière plus simple en effectuant une requête dans le contrôleur. Je donne juste un exemple de traitement unifié utilisant Model)

    class User extends Model {
    
        protected $hidden = ['userInfo'];
        
        protected $appedns = ['ClomnX']
        //声明一个关系,user和userInfo是一对一的关系
        public function userInfo()
        {
            return $this->hasOne(UserInfo::class);
        }
        
        public function getClomnXAttribute()
        {
            //判断使用了with方法关联了UserInfo。
            if (isset($this->getRelations()[UserInfo])) {
                return $this->UserInfo->ClomnX;
            } else return null;
        }
    class TestController
    {
        $user = user::with('userInfo')->find($userId);
        dump($user->toArray());//返回中没有UserInfo的数组信息,只有其中一个字段。
    }
    

    Ceci n'est qu'un exemple simple, des opérations de formatage plus complexes peuvent également être mises en œuvre via cette méthode. C'est une bonne idée.

    répondre
    0
  • Annulerrépondre