2015-12-08 2 views
2

Я новичок в Laravel и OOP в целом, пытаясь перейти от старого процедурного кода. Я хотел бы показать некоторые даты исходя из моих моделей на моем языке (итальянском) для удобства понимания: до сих пор, вот что я сделал:Laravel: лучший способ повторить форматирование даты на моем языке (итальянский)

  1. изменение 'locale' => 'it' в config/app.php файле
  2. положить setlocale(LC_TIME, config('app.locale')); в routes.php файл, см также мой previous question
  3. поставил protected $dates = ['published_at', 'expires_at']; в моей модели (ей), чтобы использовать Carbon
  4. положил {{ utf8_encode($record->published_at->formatLocalized('%A %d %B %Y')) }} на мой взгляд лезвия (ы)

(ПРИМЕЧАНИЕ: Я ДОЛЖЕН использовать utf8_encode(), в противном случае даты с акцентированными буквами (lunedì, martedì и т. Д.) Не отображаются: не знаю, почему и не может найти ответ googling ... есть ли причина для этого ? Является ли это Laravel или Carbon ошибка)

Мой вопрос о последнем пункте: пишут, что долго

{{ utf8_encode($record->published_at->formatLocalized('%A %d %B %Y')) }} 

кусок кода каждый раз утомительно, и это будет быстрее (и многоразовые) написать

{{ formatItalian($record->published_at) }} 

(Обратите внимание, что мне это нужно на несколько моделей, так что я думаю, я должен избегать Accessors для более общего подхода)

Какой самый лучший способ для достижения этой цели? Я читал о функциях пользовательских помощников, будет ли это хорошим подходом? Как я уже сказал, я новичок в Laravel переход от процедурного кода, и пытается использовать лучшие практики, поэтому извините за тупой вопрос ...

Благодаря

ответ

1

В то время как вы должны (и я настоятельно рекомендую вам сделать) открыть ошибку, чтобы исправить это в углероде можно легко расширить класс и использовать его в качестве примера

use Carbon\Carbon; 
class MyCarbon extends Carbon 
{ 
    public function formatItalian($format) 
    { 
     return utf8_encode($this->formatLocalized($format)) 
    } 
} 

Имейте в виду, что это не проверялась и была написана просто чтобы дать вам подсказку.

+0

Спасибо, я открыл ошибку, но, поскольку кажется, что я единственный, у кого есть проблема, они сказали, что это зависит от моей конфигурации (я использую IIS вместо Apache), но они не могут сказать, где ... – Ivan

Смежные вопросы