2015-12-08 31 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'];在我的模型(一個或多個)利用碳
  4. {{ utf8_encode($record->published_at->formatLocalized('%A %d %B %Y')) }}在我的刀片期(縣)

(注:我必須使用utf8_encode(),否則帶有重音字母(lunedì,martedì等)的日期不會顯示:不知道爲什麼,也不能找到答案googling ...是否有這個原因?它是一個Laravel或碳錯誤)

我的問題是關於最後一點:寫一個長

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

一段代碼,每次都是乏味的,這將是更快(可重複使用)寫

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

(請注意,我需要在多個型號,所以我想我必須避免訪問器較普遍的辦法)

什麼是實現這一目標的最佳方式是什麼?我閱讀了關於自定義助手函數,這是否是一個好方法?正如我所說的,我是新來的Laravel從程序代碼轉換,並嘗試使用的最佳實踐,爲愚蠢的問題,非常抱歉......

感謝

回答

1

雖然你不應該(我強烈建議您做)開闢一個bug碳解決這個問題,你可以輕鬆地擴展類,並使用該 作爲一個例子

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

請記住,這是沒有經過測試,並且被寫入只是給你一個提示。

+0

謝謝,我打開了一個錯誤,但由於看起來我是唯一有問題的人,他們說這取決於我的配置(我使用的是IIS而不是Apache),但他們不能說哪裏... – Ivan

相關問題