как получить одну информацию в EAV laravel, если есть те же данные - PullRequest
0 голосов
/ 06 января 2020

У меня есть база данных с моделью EAV Entity-attribute-value, если есть те же данные, как я могу отображать одни и те же данные только один раз? например, у меня есть пользователь таблицы

id  user_id     name   user_value_name   user_value
1     2         vandy  useraddress       new york
3     2         vandy  userscore_tesA    90
4     2         vandy  userscore_tesB    30
5     3         ahmad  useraddress       japan
6     3         ahmad  userscore_tesA    80
7     3         ahmad  userscore_tesB    70

Как мне сделать так, чтобы мое имя отображалось только один раз? здесь я буду использовать jquery select2 для отображения данных

$('#name').select2({
      placeholder: "Choose User...",
      ajax: {
        url: "{{ route('getUserFullname') }}",
        dataType: "json",
        delay: 250,
        processResults: function(data) {
          return {
            results: $.map(data, function(obj) {
                    return {
                    "id": obj.user_id,
                    "text": obj.name,
                    };
            })
          };
        },
      }
    });

в моем контроллере, я беру только данные из базы данных и ответ json

$user = DB::table(users)->get();
return response()->json($user);

1 Ответ

1 голос
/ 06 января 2020

Вы можете использовать distinct метод в Laravel QueryBuilder , чтобы решить эту проблему.

$user = DB::table(users)->distinct('name')->get();
return response()->json($user);

По сути, в Laravel это довольно симпатичный вызов SELECT DISTINCT in SQL ...

...