Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.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 Distinct在Laravel中未按预期工作_Php_Laravel - Fatal编程技术网

Php Distinct在Laravel中未按预期工作

Php Distinct在Laravel中未按预期工作,php,laravel,Php,Laravel,我希望下面的输出只有一个qid而不是两个,因为我使用的是->distinct('qid') Vardump在数组中显示两个对象,而我预期只有一个对象具有一个qid: array(2) { [0]=> object(stdClass)#340 (21) { ["id"]=> int(27) ["created_at"]=> string(19) "2019-10-18 18:15:20" ["updated_at"]=> string(19) "2019-10-18 18:

我希望下面的输出只有一个
qid
而不是两个,因为我使用的是
->distinct('qid')

Vardump在数组中显示两个对象,而我预期只有一个对象具有一个
qid

array(2) { [0]=> object(stdClass)#340 (21) { ["id"]=> int(27) ["created_at"]=> string(19) "2019-10-18 18:15:20" ["updated_at"]=> string(19) "2019-10-18 18:15:20"  ["qid"]=> int(137) ["qrank"]=> int(1) } [1]=> object(stdClass)#341 (21) { ["id"]=> int(28) ["created_at"]=> string(19) "2019-10-18 18:15:47" ["updated_at"]=> string(19) "2019-10-18 18:15:47"  ["qid"]=> int(137) ["qrank"]=> int(1) } }

我错过了什么?

试着这样做:

$update_18 = DB::table('posts')
       ->groupBy('qid')
       ->get();

您需要按如下方式使用
distinct

$query = DB::table('posts')->distinct()->get(['qid']);
在拉威尔不接受任何参数。因此,只需像这样使用:

$update_18 = DB::table('posts') 
             ->distinct()
             ->get();

尝试使用分组方式
distinct
不接受任何argument@ascsoftw
distinct
没有定义参数,但如果参数通过
$columns=func_get_args()存在,它会使用参数though@lagbox感谢您提供的信息,我不知道。@ascsoftw,尽管这可能只在6.x中,这可能不是他们正在使用的版本,但这将不会返回除“qid”之外的任何字段
$update_18 = DB::table('posts') 
             ->distinct()
             ->get();