a16s表
id p_id u_id trust time
1 1 1 1 1
2 1 2 1 2
3 1 3 0 3
4 1 4 0 4
5 1 5 0 5
6 2 1 0 1
7 2 2 1 2
8 2 5 0 3
9 2 6 0 4
10 3 2 1 1
11 3 5 1 2
12 3 8 1 3
我想得到 p_id组在信任组上的前两个数据,依次由信任显示数据
id p_id u_id trust time
1 1 1 1 1
2 1 2 1 2
4 1 4 0 4
5 1 5 0 5
7 2 2 1 2
6 2 1 0 1
8 2 5 0 3
10 3 2 1 1
11 3 5 1 2
我尝试查询
$result = DB::table('a16s')
->select ('id','p_id','u_id','trust','time'))
->orderBy('time', 'desc')
->get()
->groupBy('p_id')
->get()
->groupBy('trust','desc')
->map(function ($deal) {
return $deal->take(2);
});
echo '<pre>' ;
print_r($result);
我收到了错误 Symfony \ Component \ Debug \ Exception \ FatalThrowableError(E_RECOVERABLE_ERROR) 类型错误:函数Illuminate \ Support \ Collection :: get()的参数太少,在第48行的D:\ AppServ \ www \ comefour \ app \ Http \ Controllers \ CodoController.php中传递0,并且至少有1个预期
答案 0 :(得分:0)
在您的第一个 - &gt; get()之后,db查询将转换为集合。
collection get需要一个密钥作为参数。
将->get()
放在构建器查询的末尾。
像这样:
$result = DB::table('a16s')
->select ('id','p_id','u_id','trust','time'))
->orderBy('time', 'desc')
->groupBy('p_id') // end of query
->get() // get the collection
->groupBy('trust','desc')
->map(function ($deal) {
return $deal->take(2);
});