我有一个包含行的表,其中包含字符串"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']);
}
}
但不知何故,数据在没有被替换的情况下进入模型......可能是什么导致这个?
答案 0 :(得分:1)
这被称为访问者,在尝试检索值时,Eloquent会自动调用它。方法名称应该是您要访问的列的驼峰名称,前面是获取,后跟属性,例如getColumnNameAttribute()
将采用列的 colum_name 强>