Отличный не работает, как ожидалось в Laravel - PullRequest
0 голосов
/ 19 октября 2019

Я ожидаю, что на выходе ниже будет только один qid, а не два, потому что я использую ->distinct('qid').

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

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) } }

Чего мне не хватает?

Ответы [ 3 ]

1 голос
/ 19 октября 2019

Попробуй так:

$update_18 = DB::table('posts')
       ->groupBy('qid')
       ->get();
0 голосов
/ 19 октября 2019

метод Different () в laravel не принимает никаких параметров. Так что просто используйте как это:

$update_18 = DB::table('posts') 
             ->distinct()
             ->get();
0 голосов
/ 19 октября 2019

Вам нужно использовать distinct, как показано ниже:

$query = DB::table('posts')->distinct()->get(['qid']);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...