2014-11-28 19 views
12

Tôi muốn sử dụng Carbon trên Chế độ xem Tôi bao gồm nó ở trên cùng của tệp lượt xem nhưng nó không hoạt động, tôi đang làm như thế này.Sử dụng carbon trên 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 

Tôi chỉ gặp lỗi. Tôi muốn chuyển đổi {{($ mytask-> đăng nhập)}} thành định dạng có thể đọc được bằng cách sử dụng carbon

+0

Có gì '-> logon'? Nó có bị biến đổi thành carbon trong mô hình Eloquent của bạn bằng cách sử dụng 'getDates()' hay accessor? –

+0

Giải pháp là gì? – hogan

+0

Bạn không thể vượt qua trong một biến đối tượng carbon thông qua bộ điều khiển? Nó sẽ giúp bạn tiết kiệm một mớ hỗn độn. – GoogleMac

Trả lời

13

Bạn không cần thêm tuyên bố sử dụng cho carbon trong chế độ xem. Chỉ cần chắc chắn rằng $mytask->logon thực sự là một đối tượng carbon và sử dụng phương pháp format() để biến nó thành một chuỗi

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

Edit:

Nếu $mytask->logon là một đối tượng sử dụng carbon:

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

Nếu nó vẫn là một chuỗi sử dụng:

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

Tôi khuyên bạn nên làm điều đó trong bộ điều khiển mặc dù hoặc một nhà soạn nhạc xem để giữ cho chế độ xem của bạn gọn gàng.

+0

Vâng thưa ông $ mytask-> đăng nhập là định dạng dấu thời gian, nhưng những gì tôi muốn làm là sử dụng thứ hai, phút hoặc vài giờ trước. Ví dụ 5 phút trước, một giờ trước.Chỉ cần như vậy thưa ông –

+0

Nếu '$ mytask-> logon' là một đối tượng carbon sử dụng:' $ mytask-> logon-> diffForHumans() ' Nếu nó vẫn là một chuỗi sử dụng:' \ Carbon \ Carbon :: createFromTimeStamp (strtotime ($ mytask-> logon)) -> diffForHumans(); '. Tôi sẽ khuyên bạn nên làm điều đó trong bộ điều khiển mặc dù hoặc một nhà soạn nhạc xem để giữ cho xem của bạn gọn gàng. – turntwo

+0

Chỉ tiếp tục bị xóa, khi tôi sử dụng bất kỳ câu trả lời nào trong số các câu trả lời đã nói. :( –

21

tôi sẽ thêm sommething trích dẫn Laravel Documentation cho nhân viên của Google để thêm làm thế nào bạn có thể chuyển đổi các lĩnh vực datetime SQL của bạn thành các đối tượng Carbon:

Trong mẫu của bạn:

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

Tất cả các lĩnh vực có mặt trên mảng này sẽ tự động truy cập trong chế độ xem của bạn với các chức năng Carbon như:

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

Ghi chú gợi ý! –

+0

+1000 (nếu tôi có thể ...) – greener

1

Đối với laravel 5 Lưu ý nếu y ou cần phải làm một số đột biến tùy chỉnh, chuck này trong mô hình của bạn.

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

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

Đừng lo lắng bạn vẫn có thể truy cập thuộc tính ban đầu.

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

Hy vọng điều này sẽ giúp người không thể sử dụng cách tiêu chuẩn được đề cập.

+0

Điều này rất hữu ích –

1

Blade sử dụng:

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

Output: Đối với một nhiệm vụ đó là một ngày cách đây từ nay

1 day ago 

hơn cho thời gian có thể đọc được con người bằng Carbon bạn có thể đọc - Carbon Difference For Humans

Các vấn đề liên quan