Вызов неопределенного метода Illuminate / Database / Query / Builder :: toArray () - PullRequest
0 голосов
/ 01 октября 2018

Я новичок в использовании laravel, и у меня появилась такая ошибка:

Call to undefined method Illuminate\Database\Query\Builder::toArray()

это построитель запросов в laravel

$statsMoneyInPlay = DB::table('enginepoker_log.poker')
                    ->selectRaw("SELECT UNIX_TIMESTAMP(Date(ts)*100 as ts)")
                    ->selectRaw("sum(pot + p1pot + p2pot + p3pot + p4pot + p5pot + p6pot + p7pot + p8pot + p9pot) / count(*) As moneyInPlay")
                    ->groupBy("Date(ts)")
                    ->orderBy("Date(ts)")
                    ->toArray();

Ответы [ 2 ]

0 голосов
/ 01 октября 2018
$statsMoneyInPlay = DB::table('enginepoker_log.poker')
    ->selectRaw("SELECT UNIX_TIMESTAMP(Date(ts)*100 as ts)")
    ->selectRaw("sum(pot + p1pot + p2pot + p3pot + p4pot + p5pot + p6pot + p7pot + p8pot + p9pot) / count(*) As moneyInPlay")
    ->groupBy("Date(ts)")
    ->orderBy("Date(ts)")

возвращает Eloquent Query Builder instance.это как MySQL запрос.Фактически не извлекает данные из базы данных.

Вам необходимо выполнить этот запрос для извлечения данных из базы данных.

, чтобы сделать это.вызов get() функции для Eloquent Query Builder instance.

$statsMoneyInPlay = DB::table('enginepoker_log.poker')
    ->selectRaw("SELECT UNIX_TIMESTAMP(Date(ts)*100 as ts)")
    ->selectRaw("sum(pot + p1pot + p2pot + p3pot + p4pot + p5pot + p6pot + p7pot + p8pot + p9pot) / count(*) As moneyInPlay")
    ->groupBy("Date(ts)")
    ->orderBy("Date(ts)")
    ->get()
    ->toArray();
0 голосов
/ 01 октября 2018

Сначала получить коллекцию get (), а затем преобразовать ее в массив (toArray ())

$statsMoneyInPlay = DB::table('enginepoker_log.poker')
                                ->selectRaw("SELECT UNIX_TIMESTAMP(Date(ts)*100 as ts)")
                                ->selectRaw("sum(pot + p1pot + p2pot + p3pot + p4pot + p5pot + p6pot + p7pot + p8pot + p9pot) / count(*) As moneyInPlay")
                                ->groupBy("Date(ts)")
                                ->orderBy("Date(ts)")
                                ->get()
                                ->toArray();
...