В базе есть числовое значение, как при выборке заменить это чисо на строку?
в бд есть числовые значения 0-2.
Хотелось бы при выборке заменять
0 на Администратор
1 - Помощник
2 - Остальные
Как это реализовать?
Ответы (1 шт):
Автор решения: Vladimir Gonchar
→ Ссылка
Можете выполнить мутацию в модели, если хотите прям заменять. Например, для поля group можно сделать что-то такое:
public function getGroupAttribute()
{
$groups = [
'Администратор',
'Помощник',
'Остальные',
];
return $groups[ $this->attributes['group'] ];
}
Но это плохой вариант, который годится только как временное решение (нарушение принципа открытости-закрытости как минимум).
В Вашем варианте лучше было бы создать таблицу в БД, которая содержит роли (groups: id, title), а в Вашей текущей таблице ссылаться на id роли (group_id). В модели Вашей текущей таблицы завести отношение:
public function group()
{
$this->hasOne(Group::class, 'group_id');
}
При получении данных забирать группу по ->with('group').
Подробнее об отношениях можно почитать здесь.