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

场景是:

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

我使用的方法是:

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

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

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

例:1391234**

我想解决的是:

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

PHP中文网
PHP中文网

认证高级PHP讲师

모든 응답(1)
習慣沉默

1. 2개를 만들어요

배열을 내보낼 때 하나를 숨깁니다. 내보낸 JSON 인터페이스에서 tel은 모두 **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입니다. 으아악

2. 런타임 교체🎜 🎜tel을 수정하지 마세요. 단, 템플릿에 표시할 때
함수로 바꾸세요. 이는 JSON 내보내기에 영향을 미치지 않지만 다음을 수행해야 합니다. 표시될 때마다 사용하세요🎜
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!