У меня есть простое приложение L5, где я должен вывести некоторые даты на другом языке, и поэтому я использую jenssegers / laravel-date пакет
Тем не менее, если я попытаюсь использовать новый пакет jenssegers для своих данных, хранящихся в моей базе данных, я не получу перевод, см. Здесь:
index.blade.php
@extends('app')
@section('content')
use Jenssegers\Date\Date;
// This returns 'vor 0 Sekunden' in German, which I do want.
echo Date::now()->diffForHumans();
echo '<br/>';
// This returns '1 day ago'. It is in English, but I need it in German.
echo $orders->find(1)->created_at->diffForHumans();
@endsection
Буду признателен за любую помощь.
Причина этого заключается в том, что $orders->find(1)->created_at
возвращает Carbon
экземпляр, а не Date
один.
Один подход к использованию Date
делает это:
echo Date::instance($orders->find(1)->created_at)->diffForHumans();
Вы можете использовать acessor всегда возвращать объект Date, вот так:
в вашей модели заказа:
public function getCreatedAtAttribute($value)
{
return Date::instance($value);
}
Других решений пока нет …