laravel 5模型方法不起作用

时间:2016-06-07 11:12:03

标签: laravel-5

我有一个包含行的表,其中包含字符串"this\dIs\dA\dString"

$callPlans = CustomerCallPlan::where('customer_id', $customer->id)->get();

我得到上面的值和期望的字符串'thisXIsXAXString' 你猜我用'X'代替'\ d'。要做到这一点,我在模型类中使用下面的方法。

class CustomerCallPlan extends Model
{
    protected $table = 'customer_callplan';

    protected $fillable = [
        'template',
        'priority',
        'customer_id',
        'strip',
        'add_number',
        'actiontype',
        'data'
    ];

    public function getNumbertemplateAttribute() {
        return str_replace('\d', 'X', $this->attributes['template']);
    }
}

但不知何故,数据在没有被替换的情况下进入模型......可能是什么导致这个?

1 个答案:

答案 0 :(得分:1)

这被称为访问者,在尝试检索值时,Eloquent会自动调用它。方法名称应该是您要访问的列的驼峰名称,前面是获取,后跟属性,例如getColumnNameAttribute()将采用列的 colum_name