2016-07-28 13 views
1

Ich habe eine Tabelle in meiner Datenbank, die 3 Spalten vom Typ Datum hat, im Y-m-d-Format gespeichert. Ich brauche die Daten, die in meinen Ansichten als d/m/Y angezeigt werden. Das Modell für diese Tabelle ist JobCard.php, so dass jedes Mal, wenn ich eine Instanz von Jobcard abrufen ich dies tun:Wohin mit diesem Code in Laravel?

$JobCard -> DateReqLatest = Carbon::createFromFormat('Y-m-d', $JobCard -> DateReqLatest)->format('d/m/Y'); 
$JobCard -> DateIssued = Carbon::createFromFormat('Y-m-d', $JobCard -> DateIssued)->format('d/m/Y'); 
$JobCard -> DateDespatch = Carbon::createFromFormat('Y-m-d', $JobCard -> DateDespatch)->format('d/m/Y'); 

I $ Jobcard meine Ansicht dann passieren. Dies funktioniert, aber es gibt mehrere Ansichten, die dieses Modell verwenden, und diese Ansichten verwenden unterschiedliche Controller. Anstatt diesen Code in jede Controllerfunktion zu kopieren, möchte ich das Datumsformat automatisch konvertieren, wenn ich eine Instanz von JobCard an eine Ansicht übergebe.

Der Benutzer wird auch Daten in einem Formular im d/m/Y-Format übermitteln, die ich in Y-m-d konvertieren muss, um in meiner Datenbank gespeichert zu werden.

Wo ist am besten, meinen Code zu schreiben, um dies zu tun?

Antwort

2

Sie können eine acessor erstellen, die jedes Mal, wenn Sie diese Eigenschaft zugreifen aufgerufen wird:

public function getDateReqLatestAttribute($value) 
{ 
    return Carbon::createFromFormat('Y-m-d', $value)->format('d/m/Y'); 
} 

Documentation

+1

Großartig, und Mutatoren für die Konvertierung zurück! Vielen Dank –