доступ к данным из базы данных для сравнения с текущей датой для расчета общего количества дней - PullRequest
0 голосов
/ 29 апреля 2019

Я попытался получить доступ к дате, хранящейся в моей таблице БД, и сравнить ее с текущей датой, чтобы я мог получить количество дней, но она показывает эту ошибку

DateTime::__construct(): Failed to parse time string ([{"quit_date":null},{"quit_date":null}]) at position 0 ([): Unexpected character

Этоэто код, который используется в моем контроллере

$quit_date = Information::select('quit_date')
             ->where('user_id','=',\Auth::user()->id)
             ->get();
$date = new Carbon($quit_date);
$now = Carbon::now();
        $day = $date->diffInDays($now);

, но если я установлю $quit_date вручную с датой, например, "2019-04-25 00: 00: 00.000000" ,код работает нормально и показывает разные дни между датами, но когда я использую Information::select для чтения даты из базы данных, он показывает ошибку.

Ответы [ 2 ]

0 голосов
/ 29 апреля 2019

Проблема возникает из-за того, что вы используете ->get() в конце вашего запроса. Этот метод возвращает Collection не один объект. Проблема решается с помощью ->first() для возврата одного объекта.

Сама ошибка в том, что в строке $date = new Carbon($quit_date); Carbon не может преобразовать Collection в дату.

Это должно работать:

$quit_date = Information::select('quit_date')
             ->where('user_id','=', \Auth::user()->id)
             ->first();    //Changed this from ->get()
$date = new Carbon($quit_date);
$now = Carbon::now();
$day = $date->diffInDays($now);
0 голосов
/ 29 апреля 2019
    use Auth;     //top of controller
    $checkdate = Information::
            ->where('user_id','=',Auth::user()->id)
            ->first();
    $quit_date=$checkdate->quit_date;
    $date = new Carbon($quit_date);
    $now = Carbon::now();
    $day = $date->diffInDays($now);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...