Как в laravel маскировать данные input
братья прогеры, столкнулся с такой проблемой, данные которые приходят с JSON, допустим пришел ответ JSON в поле дата рождения 05.06.1995 выдал такие данные, а надо чтобы они прилетали в поле input примерно в таком виде $$.06.19$$, только вместо доллара должны быть звездочки, никогда не сталкивался с таким, благодарю за помощь
Ответы (1 шт):
ну для вашего вопроса используются мутаторы. Прочитайте в документации про них. Далее приведу пример как правильно делать.
Во-первых. Необходимо спрятать в выборке данное значение поля бд. Например оно называется birthdate, значит в модели указываете:
class User extends Model
{
...
protected $hidden = ['birthdate'];
...
}
В результате в выборке фронт не увидит данное значение, но на бэке для обработки можно так же использовать его $user->birthdate.
Во-вторых. Теперь необходимо вернуть на фронт зашифрованное значение в замен исходного спрятанного. Для это создадим мутатор:
class User extends Model
{
...
protected $hidden = ['birthdate'];
protected $appends= ['encode_birthdate'];
...
public function getEncodeBirthdateAttribute()
{
$time = strtotime($this->birthdate);
return '**.'.date('m', $time).'.'.substr(date('Y', $time), 0, 2).'**';
}
}
В результате на фронте появится значение encode_birthdate в объекте модели полученной.