Когда вы звоните count()
, он возвращает номер (как вы видели в своей ошибке). Попробуйте поменять функции и настройки параметра groupBy
необходимо рассчитать сырье:
$tanggal = DB::table('entry')
->groupBy(DB::raw("DATE(created_at)")
->count('*');
При вызове table()
он запускает экземпляр построителя запросов. Многие методы построения запросов снова возвращают построитель запросов для цепочки методов, но некоторые из них являются окончательными и возвращают результат, например get()
, first()
, и в этом случае count()
.
Я не тестировал вышеуказанный код, но он должен быть близок. Вы также заметите, что я изменил его с DATE_FORMAT
до DATE
. Я вижу, что вы пытаетесь исключить часть метки времени, и вы можете просто использовать последний вместо переформатирования (что может замедлить запрос крошечным битом).
EDIT:
Ok, ваш вопрос не был объяснен очень хорошо. Из вашего комментария, я думаю, это то, что вы ищете. Кроме того, не забывайте, что Eloquent - это фантастический ORM, но это не серебряная пуля, и иногда вам могут потребоваться только простые простые SQL-запросы.
$results = DB::table('entry')
->addSelect(DB::raw('COUNT("*") as total)')
->groupBy(DB::raw("DATE(created_at)")
->get();
'он не может работать' ... можете ли вы быть более конкретным? Существуют ли ошибки в ваших журналах? Вы видите ошибку в своем браузере? –
ошибка: «Вызовите функцию-членную группуBy() на целое число« –