Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将2个集合合并到另一个集合中,在两个laravel中使用相同的值_Php_Mysql_Laravel - Fatal编程技术网

Php 将2个集合合并到另一个集合中,在两个laravel中使用相同的值

Php 将2个集合合并到另一个集合中,在两个laravel中使用相同的值,php,mysql,laravel,Php,Mysql,Laravel,嗨,我在laravel中有两个对象,如下所示: { user_id: 34993, price: "20000.00" }, { user_id: 35153, price: "20000.00" }, { user_id: 35168, price: "20000.00" }, { $data = DB::table('users_tracker')->where('user_id','>','34676')->where('action','LI

嗨,我在laravel中有两个对象,如下所示:

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

        $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;
    }
第二个是用户对象:

[
{
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键和第二个对象的id键合并,因为它们是相同的??我的代码如下:

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

        $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
加入
用户跟踪器,如下所示:

User::join('users\u tracker'、'users\u tracker.User\u id'、'='、'users.id')
->其中('users\u tracker.user\u id'、'>'、'34676')
->其中('users\u tracker.action'、'LIKE'、'%gatewayResponse%'))
->leftJoin('gateway_transactions',函数($join){
$join->on('gateway\u transactions.ip','=','users\u tracker.ip');
})
->其中('gateway_transactions.status'、'='、'success')
->选择(“*”、“users\u tracker.user\u id”、“gateway\u transactions.price”)
->groupBy('users\u tracker.user\u id'、'gateway\u transactions.price')
->get();
看来你只有一个问题

在config/database.php中设置sql_模式

'mysql'=>[
...
“模式”=>[
“严格的所有表格”,
“用0除0的错误”,
“没有零日期”,
“日期中没有零”,
“无自动创建用户”,
],
];
请记住清除配置缓存:

php artisan配置:清除 php artisan优化
gateway\u transactions
表中如果第一个对象上的user\u id列是唯一的,为什么不只保留一个表并在那里添加price字段呢?SQLSTATE[42883]:未定义的函数:7错误:无法识别json类型的相等运算符第1行:选择distinct“users”。*,“user\u id”,“price”与“users”i.^(SQL:select distinct“users.”*,“user\u id”price在gateway\u事务中,而不是user\u tracker,当我更改时,我得到errorGrouping error:7 error:column“users.id”必须出现在GROUP BY子句中或在聚合函数行中使用1:select“users.”*,“users\u tracker”。“user\u id”,“gateway\u transa…”(SQL:我认为您使用的是mysql 5.7+,因此当您使用group by时,如果所选列未全部通过group,则会显示
仅\u FULL\u group\u by
错误by@Farshad您可以使用
selectRaw('ANY_VALUE(users.id),ANY_VALUE(col1),…')