将 2 个集合合并到另一个集合中,在两个 laravel 中具有一个相同的值



嗨,我在 Laravel 中有 2 个对象,如下所示:

{
user_id: 34993,
price: "20000.00"
},
{
user_id: 35153,
price: "20000.00"
},
{
user_id: 35168,
price: "20000.00"
},

而 secound 是用户对象:

[
{
id: 34993,
uuid: "8f8f2ba3-0d51-4fdb-83cd-6e13a0f2cc13",
fullname: "َUsersName",
email: null,
created_at: "2020-01-15 14:42:45",
updated_at: "2020-01-15 14:43:58",
email_verified_at: null,
gender: 2,
title: null
},
{
id: 35153,
uuid: "8f8f2ba3-0d51-4fdb-83cd-6e13a0f2cc13",
fullname: "َUsersName",
email: null,
created_at: "2020-01-15 14:42:45",
updated_at: "2020-01-15 14:43:58",
email_verified_at: null,
gender: 2,
title: null
},
{
id: 35168,
uuid: "8f8f2ba3-0d51-4fdb-83cd-6e13a0f2cc13",
fullname: "َUsersName",
email: null,
created_at: "2020-01-15 14:42:45",
updated_at: "2020-01-15 14:43:58",
email_verified_at: null,
gender: 2,
title: null
},

那么现在如何将价格添加到第二个对象中的用户对象中,或者将它们与第一个对象中的user_id键和 Secound 对象的 ID 合并,因为它们是相同的? 我的代码如下所示:

{
$data = DB::table('users_tracker')->where('user_id','>','34676')->where('action','LIKE','%gatewayResponse%')
->leftJoin('gateway_transactions',function($join){
$join->on('gateway_transactions.ip','=','users_tracker.ip');
})
->where('gateway_transactions.status','=','SUCCEED')
->select('user_id','price')
->distinct()
->get();
//        return $data;
$user_id = $data->pluck('user_id');
$users = User::whereIn('id',$user_id)->get();
return $users;
}

使用User像这样joinusers_tracker:

User::join('users_tracker', 'users_tracker.user_id', '=', 'users.id')
->where('users_tracker.user_id','>','34676')
->where('users_tracker.action','LIKE','%gatewayResponse%')
->leftJoin('gateway_transactions',function($join){
$join->on('gateway_transactions.ip','=','users_tracker.ip');
})
->where('gateway_transactions.status','=','SUCCEED')
->select('*', 'users_tracker.user_id', 'gateway_transactions.price')
->groupBy('users_tracker.user_id', 'gateway_transactions.price')
->get();

看来你有only_full_group_by问题。

在配置/数据库中设置sql_mode.php

'mysql' => [
...
'modes' => [
'STRICT_ALL_TABLES',
'ERROR_FOR_DIVISION_BY_ZERO',
'NO_ZERO_DATE',
'NO_ZERO_IN_DATE',
'NO_AUTO_CREATE_USER',
],
];

请记住清除配置缓存:

php artisan config:clear
php artisan optimize

相关内容

最新更新