2014-11-28 10 views
12

Voglio usare Carbon on Views Sto includendolo nella parte superiore del file views ma non funziona, lo sto facendo in questo modo.Usa carbonio su Views 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 

Ho appena ricevuto degli errori. Voglio convertire il {{($ mytask-> logon)}} in un formato leggibile usando carbone

+0

Cosa significa '-> accesso? È mutato in carbonio nel tuo modello Eloquent usando 'getDates()' o accessor? –

+0

Qual è la soluzione? – hogan

+0

Non puoi passare una variabile oggetto carbonio tramite il controller? Ti farebbe risparmiare un gran casino. – GoogleMac

risposta

13

Non è necessario aggiungere una dichiarazione di utilizzo per il carbonio nella vista. Basta fare in modo che $mytask->logon è davvero un oggetto di carbonio e utilizzare il metodo format() per trasformarlo in una stringa

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

Edit:

Se $mytask->logon è un uso oggetto di carbonio:

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

Se è ancora un uso di stringa:

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

Vorrei consigliarvi di farlo sul controller o su un compositore di view per mantenere la vista nitida.

+0

Sì signore $ mytask-> è in formato timestamp, ma quello che voglio fare è usare il secondo, i minuti o le ore fa. Ad esempio 5 minuti fa, un'ora fa.Proprio così signore –

+0

Se '$ mytask-> logon' è un oggetto carbonio usa:' $ mytask-> logon-> diffForHumans() ' Se è ancora una stringa usa:' \ Carbon \ Carbon :: createFromTimeStamp (strtotime ($ mytask-> inizio attività)) -> diffForHumans(); '. Ti consiglio di farlo sul controller o su un compositore di view per mantenere la tua visione nitida. – turntwo

+0

Continua a ricevere eroore, quando uso una delle risposte indicate nelle viste. :( –

21

vorrei aggiungere sommething citando Laravel Documentation per Googler aggiungere come è possibile trasformare i campi datetime SQL in oggetti carbonio:

nel modello:

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

tutti i campi presenti in questo array sarà automaticamente accessibile in vostro punto di vista con funzioni di carbonio come:

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

Heads up per il suggerimento! –

+0

+1000 (se potessi ...) – greener

1

per laravel 5 Nota se y Devi fare alcune mutazioni personalizzate, buttale nel tuo modello.

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

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

Non preoccuparti, puoi ancora accedere all'attributo originale.

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

Spero che questo aiuti qualcuno che non può utilizzare il modo standard indicato.

+0

Questo è stato molto utile –

1

lama Usa:

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

uscita: Per un compito che è di un giorno fa da ora

1 day ago 

più per il tempo di interpretazione da Carbon si può leggere - Carbon Difference For Humans