Diskrepanz zwischen ->created_at und ->value('created_at') in Laravel: Warum geben sie unterschiedliche Werte zurück?Php

PHP-Programmierer chatten hier
Guest
 Diskrepanz zwischen ->created_at und ->value('created_at') in Laravel: Warum geben sie unterschiedliche Werte zurück?

Post by Guest »

Ich habe in meiner Laravel 10-Anwendung ein Problem, bei dem der Zugriff auf das Attribut „created_at direkt von einer Modellinstanz einen anderen Wert zurückgibt als bei Verwendung der value()-Methode für dasselbe Modell.
Die Datenbank hat dieses Datum „2025-01-15 14:01:26“
Hier ist der Code, den ich verwende:

Code: Select all

$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,
]);
Das sind die Ergebnisse:

Code: Select all

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)
}
]
Wo Sie deutlich erkennen können, dass die beiden Werte als Carbon-Instanz zurückkommen, jedoch mit völlig unterschiedlichen Daten:

Code: Select all

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

date: 2023-09-19 14:26:39.0 UTC (+00:00)
Warum gibt der direkte Zugriff über das Modell ($societa->created_at) einen anderen Zeitstempel zurück?
Was könnte diese Diskrepanz verursachen?< /p>
Zusätzlicher Kontext:
Die Spalte „created_at“ wird durch Laravels Standard-Zeitstempelverhalten verwaltet.
Für das Modell sind keine Mutatoren oder Accessoren definiert erstellt_at.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post