1️⃣ Встроенный метод serializeDate() - это ОФИЦИАЛЬНЫЙ способ
// В моделях (это не костыль, это часть API Eloquent)
protected function serializeDate(DateTimeInterface $date)
{
return $date->format('Y-m-d H:i:s');
}
2️⃣ Глобально через AppServiceProvider (правильный способ)
// app/Providers/AppServiceProvider.php
use Illuminate\Support\Facades\Date;
public function boot()
{
// Для всех моделей сразу
Date::useSerializedFormat();
}
3️⃣ Через встроенное свойство $dateFormat
// В BaseModel
protected $dateFormat = 'Y-m-d H:i:s';
4️⃣ Если это API - использовать API Resources (самый правильный способ)
// app/Http/Resources/MessageResource.php
class MessageResource extends JsonResource
{
public function toArray($request)
{
return [
'id' => $this->id,
'created_at' => $this->created_at->format('Y-m-d H:i:s'),
// ...
];
}
}
5️⃣ Через конфиг (если поддерживается в версии)
// config/database.php
'connections' => [
'mysql' => [
// ...
'serialization' => \Illuminate\Database\Query\Grammars\MySqlGrammar::SERIALIZE_STRINGS,
],
],