php - 关于使用laravel 中的读取器(getAttribute)时遇到的问题
PHP中文网
PHP中文网 2017-05-16 12:58:48
0
1
695

场景是:

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

我使用的方法是:

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

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

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

例:1391234**

我想解决的是:

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

PHP中文网
PHP中文网

认证高级PHP讲师

membalas semua(1)
習慣沉默

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🎜
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!