如果有相同的数据,如何在 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
我有一个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