Saltar al contenido

Laravel: ¿cómo establecer el formato de fecha en la conversión de atributos del modelo?

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.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *