Устраняем проблемы с языком в Carbon

Все кто работают с Laravel встречались с преобразователями, к примеру по умолчанию Eloquent будет преобразовывать столбцы created_at и updated_at в экземпляры Carbon.

И всё работает вроде бы хорошо, но есть одно но, когда Вы будете пользоваться методами formatLocalized или diffForHumans то возникнет следующая проблема:

Image

Дату будет выводить на английском языке, вне зависимости от того какой язык указан в config/app.php. Решить это можно указав для Carbon отдельно локаль, в которой он будет работать.

Делается это следующим способом:

Carbon::setLocale('ru');

Или более универсальным способом, чтобы язык брался с config/app.php:

Carbon::setLocale(config('app.locale'))

Теперь осталось добавить это куда то в код, чтобы при каждом обращении устанавливался необходимый язык. Как вариант можно добавить его в свой ServiceProvider, я же добавил его в AppServiceProvider:

public function boot()
{
    Carbon::setLocale(config('app.locale'));
}

Теперь дата выглядит вот так:

Image

Комментарии (0)


  1. Комментариев пока нет.