2014-11-28 3 views
12

Ich möchte die Carbon auf Ansichten verwenden Ich bin es oben auf der Sichten-Datei, aber es funktioniert nicht, ich mache es so.Verwenden Sie Carbon auf Ansichten Laravel

<?php use carbon/carbon;?> 
@extends('main_layout') 

     @foreach ($myquery as $mytask) 
       <tr> 

       <td > 
       {{($mytask->firstname)}} 
       </td> 

       <td > 
         {{($mytask->lastname)}} 
       </td> 
        <td> 
       {{($mytask->logon)}} 
        </td> 

@section('content') 
@stop 

Ich bekomme nur Fehler. Ich möchte die {{($ mytask-> logon)}} in ein menschenlesbares Format mit Carbon konvertieren

+0

Was ist '-> Anmeldung '? Ist es in Ihrem Eloquent-Modell mit 'getDates()' oder Accessor zu Kohlenstoff mutiert? –

+0

Was ist die Lösung? – hogan

+0

Können Sie keine Kohlenstoffobjektvariable über den Controller übergeben? Es würde dir eine ganze Sauerei ersparen. – GoogleMac

Antwort

13

Sie müssen keine Verwendung Aussage für Kohlenstoff in der Ansicht hinzufügen. So stellen Sie sicher, dass $mytask->logon ist in der Tat ein Kohlenstoff-Objekt und verwenden Sie die format() Methode es in einen String zu drehen

{{ $mytask->logon->format('Y/m/d') }} 

Edit:

Wenn $mytask->logon eine Kohlenstoff-Objekt verwenden:

{{ $mytask->logon->diffForHumans() }} 

Wenn es ist immer noch eine Zeichenfolge verwenden:

{{ \Carbon\Carbon::createFromTimeStamp(strtotime($mytask->logon))->diffForHumans()‌​ }} 

Ich würde dir raten, das im Controller zu tun oder in einem View-Composer, um deinen Überblick zu behalten.

+0

Ja, Sir, die $ mytask-> Anmeldung ist im Timestamp-Format, aber was ich tun möchte, ist die zweite, Minuten oder Stunden zu verwenden. Zum Beispiel vor 5 Minuten, vor einer Stunde.Genau so, Sir –

+0

Wenn '$ mytask-> logon' ein Kohlenstoffobjekt ist, benutze:' $ mytask-> logon-> diffForHumans() ' Wenn es immer noch eine Zeichenkette verwendet:' \ Carbon \ Carbon :: createFromTimeStamp (strtotime ($ mytask-> Anmeldung)) -> diffForHumans(); '. Ich würde empfehlen, dies im Controller zu tun, oder einen View Composer, um den Überblick zu behalten. – turntwo

+0

Immer wieder erodiert, wenn ich eine der genannten Antworten in den Ansichten verwende. :( –

21

Ich möchte hinzufügen, sommething zitiert Laravel Documentation für Googler hinzufügen, wie Sie Ihre SQL-Datetime-Felder in Carbon-Objekte verwandeln kann:

In Ihrem Modell:

protected $dates = ['created_at', 'updated_at', 'disabled_at','mydate']; 

die Felder, die auf diesem Array Alles wird automatisch zugänglich in Ihren Ansichten mit Carbon-Funktionen wie:

{{ $article->mydate->diffForHumans() }} 
+0

Kopf für den Hinweis! –

+0

+1000 (wenn ich könnte ...) – greener

1

Für Laravel 5 Hinweis, wenn y Sie müssen einige benutzerdefinierte Mutationen tun, Chuck dies in Ihrem Modell.

/** 
* The string attribute that should be cast to custom carbon date. 
* 
* @var array 
*/ 

public function getTimeAttribute() 
{ 
    return Carbon::createFromTimestampUTC($this->attributes['time']/1000); 
} 

Keine Sorge, Sie können immer noch auf das ursprüngliche Attribut zugreifen.

New = {{ $event->time }} Original = {{ $event->getOriginal('time')}} 

Hoffe das hilft jemandem, der nicht den Standard Weg erwähnt verwenden kann.

+0

Dies war sehr hilfreich –

1

Blade-Einsatz:

{{ \Carbon\Carbon::parse($mytask->logon)->diffForHumans() }} 

Ausgang: Für eine Aufgabe, die vor einem Tag ab jetzt

1 day ago 

Mehr zu den Menschen lesbare Zeit von Kohlenstoff ist, kann man lesen - Carbon Difference For Humans