Solución:
Después de laravel 5,6,
Puede personalizar individualmente el formato de Eloquent date y datetime casting:
protected $casts = [
'birthday' => 'date:Y-m-d',
'joined_at' => 'datetime:Y-m-d H:00',
];
Este formato se utiliza cuando el modelo se serializa en una matriz o datos JSON
En lugar de emitir un formato de fecha, puede usar mutadores para establecer el formato que desee:
Por ejemplo, si su columna se llamó date
, puede agregar la siguiente función a su modelo:
public function setDateAttribute( $value ) {
$this->attributes['date'] = (new Carbon($value))->format('d/m/y');
}
los setDateAttribute
siempre está en el formato set[ColumnName]Attribute
, utilizando CamelCase. los date
en el $this->attributes['date']
La parte también debe coincidir con el nombre real de la columna en la tabla.
Cuando usted create
o update
un registro en su base de datos, el formato será cambiado automáticamente por la función anterior.
Nota: es posible que deba agregar el use CarbonCarbon
declaración en la parte superior de su modelo para usar la biblioteca Carbon.
Eche un vistazo a otros ejemplos aquí.
ACTUALIZAR
Opcionalmente, puede definir un formato para date
columnas usando:
protected $dateFormat="Y-m-d";
Solo agregue al modelo:
protected function asDateTime($value)
{
return parent::asDateTime($value)->format('d/m/y');
}
El método de este Eloquent originalmente devuelve una instancia de Carbon, por lo que puede obtener esa instancia y llamar a su método format (). Si desea aplicar esta solución a todos los modelos, simplemente cree una nueva clase extendida de Eloquent y coloque este método allí, para que pueda extender los modelos de esta nueva clase.