Это моя таблица mySql "listazelja": http://prntscr.com/duj2tf
я хочу получить то, что упомянуто в заголовке, с помощью этого кода в моем контроллере:
<?php
namespace App\Http\Controllers;
use App\ListaZelja;
use Carbon\Carbon;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
class GlazbeniController extends Controller
{
public function listazelja(){
$sada = Carbon::now();
$listaZelja = DB::table('listazelja')->orderBy('zapis_count','desc')->select(DB::raw('count(*) as zapis_count'),'zapis_id')
->groupBy('zapis_id')
->having($sada->diffInHours(Carbon::createFromFormat('Y-m-d H-m-s', 'created_at')) <= 48)
->take(10)->get();
return view('pregledajlistuzelja',compact('listaZelja'));
}
}
Это ошибка, которую я получаю:
InvalidArgumentException в строке 425 Carbon.php: не удалось найти год из четырех цифр. Отсутствуют данные
Я знаю, что проблема в этой строке кода: ->having($sada->diffInHours(Carbon::createFromFormat('Y-m-d H-m-s', 'created_at')) <= 48)
так что я должен сделать, чтобы заставить его работать.
P.S. created_at в mySql имеет тип: timestamp
Carbon::createFromFormat($format, $time, $tz);
вторым аргументом должно быть$time
, но вы передаете строку со значениемcreated_at
. Извлечено изCarbon
документаCarbon::createFromFormat('Y-m-d H', '1975-05-21 22')->toDateTimeString(); // 1975-05-21 22:00:00
- person Gayan   schedule 12.01.2017