Несоответствие между ->created_at и ->value('created_at') в Laravel: почему они возвращают разные значения?Php

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Несоответствие между ->created_at и ->value('created_at') в Laravel: почему они возвращают разные значения?

Сообщение Anonymous »

Я столкнулся с проблемой в своем приложении Laravel 10, когда доступ к атрибуту созданного_at непосредственно из экземпляра модели возвращает другое значение, чем при использовании метода value() в той же модели.
В базе данных указана дата «2025-01-15 14:01:26»
Вот код, который я использую:

Код: Выделить всё

$company = Company::find($user->company_id);

// Accessing created_at directly
$createdAtDirect = $company->created_at;

// Accessing created_at using the value() method
$createdAtValue = $company->value('created_at');

// Debugging output
dd([
'created_at_direct' => $createdAtDirect,
'created_at_value' => $createdAtValue,
]);
Вот результаты:

Код: Выделить всё

array:2 [▼ // app\Http\Middleware\TrialCheckMiddleware.php:43
"created_at_direct" =>
Illuminate\Support
\
Carbon @1736949686 {#1981 ▼
#endOfTime: false
#startOfTime: false
#constructedObjectId: "00000000000007bd0000000000000000"
#localMonthsOverflow: null
#localYearsOverflow: null
#localStrictModeEnabled: null
#localHumanDiffOptions: null
#localToStringFormat: null
#localSerializer: null
#localMacros: null
#localGenericMacros: null
#localFormatFunction: null
#localTranslator: null
#dumpProperties: array:3 [▶]
#dumpLocale: null
#dumpDateProperties: null
date: 2025-01-15 14:01:26.0 UTC (+00:00)
}
"created_at_value" =>
Illuminate\Support
\
Carbon @1695133599 {#1977 ▼
#endOfTime: false
#startOfTime: false
#constructedObjectId: "00000000000007b90000000000000000"
#localMonthsOverflow: null
#localYearsOverflow: null
#localStrictModeEnabled: null
#localHumanDiffOptions: null
#localToStringFormat: null
#localSerializer: null
#localMacros: null
#localGenericMacros: null
#localFormatFunction: null
#localTranslator: null
#dumpProperties: array:3 [▶]
#dumpLocale: null
#dumpDateProperties: null
date: 2023-09-19 14:26:39.0 UTC (+00:00)
}
]
Где вы можете ясно заметить, что два значения возвращаются как экземпляр Carbon, но с совершенно разными датами:

Код: Выделить всё

  date: 2025-01-15 14:01:26.0 UTC (+00:00)

date: 2023-09-19 14:26:39.0 UTC (+00:00)
Почему доступ к нему напрямую из модели ($societa->created_at) возвращает другую метку времени?
Что может быть причиной этого несоответствия?< /p>
Дополнительный контекст:
Столбец create_at управляется поведением временной метки Laravel по умолчанию.
В модели не определены какие-либо мутаторы или средства доступа. создано_at.

Подробнее здесь: https://stackoverflow.com/questions/793 ... -why-do-th
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»