У меня есть таблица со строками с колонки строка, при этом "this\dIs\dA\dString"
Laravel 5 Метод модель не работает
$callPlans = CustomerCallPlan::where('customer_id', $customer->id)->get();
Я получаю значения, как и выше, и ожидается строка «thisXIsXAXString» , как вы догадываетесь, я заменить «\ 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']);
}
}
Но как-то данные доходят до модели без замены .. что может быть причиной этого?
Где и когда вы вызываете 'getNumbertemplateAttribute()'? – jerik
Хороший вопрос Я никогда не называл это. Я думаю, что этот метод является вызовом для каждого requestr с laravel eloquient объектом, классом модели (CustomerCallPlan) – TyForHelpDude
Как объект larvel eloquent знает, что он должен назвать этот метод? Полагаю, для этого есть механизм в ларавеле. Либо вы должны указать, какую функцию следует вызывать при каждом запросе модели, или имя функции создается после определенного синтаксиса. Для последнего я думаю, что ваше имя функции не похоже на что-то такое, а для первого - отсутствие конфигурации. – jerik