Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 Re: Laravel 5.x » На полях типа date не работает Attribute Casting » 12.07.2019 17:27:47

Я использую MySQL и в MySQL меня устраивает в каком формате хранятся данные. Мне только вывод нужен в адаптированном под РФ формате. Ну и соответственно когда сохраняю в базу строку DD.MM.YYYY нужно чтобы сохранялось в формате по-умолчанию.

#2 Re: Laravel 5.x » На полях типа date не работает Attribute Casting » 12.07.2019 15:49:34

Спасибо, что поделились! Да, это самое очевидное решение!
Ещё можно в модели для нужных полей прописать get и set атрибуты.
Но это все много лишних строк кода!
А хочется лаконичности и по идее $casts для этого и придумали.

#3 Laravel 5.x » На полях типа date не работает Attribute Casting » 12.07.2019 15:31:18

region23
Ответов: 4

В Ларе есть такая штука как Attribute Casting

Я хочу чтобы поля типа date у определенной модели везде выводились в формате дд.мм.гггг - так как это принято в России.
Нашел, что в Laravel 5.8 у модели есть свойство $casts

Я в своей модели задал это свойство

protected $casts = [
        'enroll_date' => 'date:DD.MM.YYYY',
        'paid_date' => 'date:DD.MM.YYYY',
        'paid_untill' => 'date:DD.MM.YYYY',
    ];

Но при сохранении  модели в базу вылетает ошибка

InvalidArgumentException
Unexpected data found. Unexpected data found. Data missing

Помогите решить проблему, пожалуйста. Я хочу чтобы во всем приложении даты выводились в формате привычном в России: DD.MM.YYYY

Подвал раздела