recherche

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

php - Problèmes rencontrés lors de l'utilisation du lecteur (getAttribute) dans Laravel

La scène est :

Lors de l'affichage du champ tel dans un tableau Utilisateurs au premier plan, les 4 derniers chiffres du numéro de téléphone sont remplacés par *.

La méthode que j'utilise est :

class User extends Model
{
    public function getTelAttribute () {
        return substr($this->attributes['tel'], 0, 7) . '****';
    }
}

Si vous l'écrivez comme ça, tout ira généralement bien.

Cependant, lorsque l'utilisateur modifie ses informations personnelles via le formulaire, le numéro de téléphone affiché en saisie est

Exemple : 1391234**

Ce que je veux résoudre, c'est :

Dans le cas de l'utilisation du lecteur (getAttribute), comment
annuler temporairement l'action sur le lecteur (getAttribute) sous certaines conditions, de manière à afficher le numéro de téléphone complet ?

PHP中文网PHP中文网2786 Il y a quelques jours741

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

  • 習慣沉默

    習慣沉默2017-05-16 13:00:48

    1. Faites-en deux

    Cachez-en un lors de l'exportation de Array Cela présente des inconvénients dans l'interface JSON exportée, tel est tout **Array时隐藏一个,这样做有弊病,导出的JSON接口中,tel都是**

    protected $hidden = [
        'tel_original'
    ];
    
    function getTelAttribute() {
        return substr($this->attributes['tel'], 0, 7) . '****');
    }
    
    function getTelOriginalAttribute() {
        return $this->attributes['tel'];
    }

    2. 运行时替换

    不修改tel,但是在模板中显示时,用函数替换一下
    这样对导出JSON. rrreee

    2. Remplacement de l'exécution🎜 🎜Ne modifiez pas tel, mais lors de son affichage dans le modèle, remplacez-le par une fonction
    Cela n'aura aucun effet sur l'export JSON, mais vous devez le faire. utilisez-le à chaque fois qu'il est affiché. Remplacement de la fonction🎜

    répondre
    0
  • Annulerrépondre