Rumah  >  Soal Jawab  >  teks badan

php - 关于使用laravel 中的读取器(getAttribute)时遇到的问题

场景是:

在前台显示一个Users表里的tel字段时,电话号的后4位用*来化替。

我使用的方法是:

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

如果这样写,一般的情况下是没问题的。

但是,当用户通过表单修改个人信息时,input中所显示的电话是

例:1391234**

我想解决的是:

在使用读取器(getAttribute)的情况下,如何在一定的条件下
一时取消到读取器(getAttribute)的动作,从而达到显示完整的电话号码呢?

PHP中文网PHP中文网2735 hari yang lalu725

membalas semua(1)saya akan balas

  • 習慣沉默

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

    1. Buat dua

    Sembunyikan satu apabila mengeksport Array Ini mempunyai kelemahan Dalam antara muka JSON yang dieksport, tel semuanya **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. Penggantian masa jalan🎜 🎜Jangan ubah suai tel, tetapi apabila memaparkannya dalam templat, gantikannya dengan fungsi
    Ini tidak akan memberi kesan pada mengeksport JSON, tetapi anda perlu melakukannya gunakannya setiap kali ia dipaparkan penggantian fungsi🎜

    balas
    0
  • Batalbalas