Вывод из бд json laravel

Подскажите, у меня есть таблица в БД с колонкой tags, где написан {"tags":[игры, купить, показать]}. Как мне вывести в blade шаблоне теги в нормальном виде

<a class="btn btn-tag" href="">игры</a>
<a class="btn btn-tag" href="">купить</a>
<a class="btn btn-tag" href="">показать</a>

$services = DB::table('services')
      ->orderBy('id','ASC')
      ->where('services.id_user', '=', Auth::user()->id)
      ->leftJoin('users', 'services.id_user', '=', 'users.id')
      ->leftJoin('category', 'services.id_category', '=', 'category.id')
      ->select('services.*', 'users.id as user_id', 'category.id as cat_id', 'category.title as cat_title')
      ->get();

      return view('pages/profile/services', ['services' => $services]);


Ответы (2 шт):

Автор решения: teran

кхм, пусть будет ответ новичка в laravel, ибо я еще введение не прочитал даже.

в любом случае (не говоря о целесообразности хранения кодированных данных) вам потребуется их декодировать. Собственно для этого у вас есть три места, где это можно сделать.

Раз речь про представление, то прямо там

@foreach(json_decode($service->tags) as $tag)
    <a href="#">{{ $tag }} </a>
@endforeach

второе - предобработка данных в контроллере. Получили список, пробежались, декодировали и передали готовое в шаблон.

И третье, наиболее, наверное, адекватное - перекрыть существующее или добавить новое свойство модели

class Service extends Model {

    public function getTagsAttribute($value){
         return json_decode($value);
    }

    public function getTagsListAttribute(){
        return json_decode($this->tags);
    }
}
→ Ссылка
Автор решения: Dmitrii Sedov

Для решения вашей проблемы используются мутаторы. Данный раздел документации с указанием что и в какие данные можно преобразовывать В данном случае для преобразования json в array колонки tags, модели service, нужно указать следующее:

class Service extends Model
{
    ...

    protected $casts = [
        'tags' => 'array'
    ];
}

Далее отправляется на фронт и перебираете.

→ Ссылка