В базе есть числовое значение, как при выборке заменить это чисо на строку?

в бд есть числовые значения 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').
Подробнее об отношениях можно почитать здесь.

→ Ссылка