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

场景是:

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

我使用的方法是:

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

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

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

例:1391234**

我想解决的是:

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

想到解决的方法了。哎,是自已专牛解尖了。

前台显示时用

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


User::find($id)->selete('secret')->first();

表单里使用时,提取原字段名

User::find($id)->selete('tel')->first();