如果有相同的数据,如何在 EAV laravel 中检索一个数据

how to retrieve one data in EAV laravel if there is the same data

我有一个EAV实体-属性-值模型的数据库,如果有相同的数据如何只显示一次相同的数据? 例如我有 table 用户

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的return响应中获取数据

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

您可以使用 Laravel 的 QueryBuilder 中的 distinct 方法来解决这个问题。

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

本质上是Laravel中的一个漂亮的方法,在SQL...

中调用SELECT DISTINCT