在laravel视图中使用碳功能(刀片模板)

时间:2016-02-02 09:14:37

标签: php laravel php-carbon

我从数据库中获取了一些值,并将这些值从控制器传递到视图中。现在我想在 Laravel视图中使用一些carbon function的数据。

在我写的View文件中

foreach($customer as $time){

        $create= $time->created_at;
        $update= $time->updated_at;

        $create_at_difference=\Carbon\Carbon::createFromTimestamp(strtotime($create))->diff(\Carbon\Carbon::now())->days;


}

当我尝试这样做时,它会返回"Class 'Carbon' not found"

我该怎么做?

5 个答案:

答案 0 :(得分:5)

它使用全局命名空间到我的view.blade.php

      {{ \Carbon\Carbon::parse($row->posted_at)->diffForHumans() }}

答案 1 :(得分:1)

如果要使用命名空间类,则不需要第一个斜杠:

 $create_at_difference=Carbon\Carbon::createFromTimestamp(strtotime($create))->diff(\Carbon\Carbon::now())->days;

你应该写碳\碳而不是\碳\碳。

这是一个快速的解决方案。但是,在视图中直接使用类是个坏主意。您可以通过创建一个函数来为模型添加更多功能,该函数将返回以差异形式创建的当前值。

假设你有客户模型,你可以这样:

use Carbon\Carbon;

class Customer extends Eloquent
{
      public function created_at_difference()
      {
           return Carbon::createFromTimestamp(strtotime($this->created_at))->diff(Carbon::now())->days;
      } 
}

然后在视图中您可以访问:

@foreach($customers as $customer)
   {{$customer->created_at_difference()}}
@endforeach

答案 2 :(得分:0)

不要重复\Carbon\Carbon,只需尝试

\Carbon::createFromTimestamp(strtotime($create))->diff(\Carbon::now())->days

答案 3 :(得分:0)

另一个选择,我认为最好把这行代码置于你的班级之上:

namespace App\Http\Controllers


use Carbon\Carbon;


class MyController {
  ...
}

答案 4 :(得分:0)

遇到同样的问题,这对我有用

$create = $time->created_at;

$create_at_difference = Carbon\Carbon::createFromTimestamp(strtotime($create))
                    ->diff(\Carbon\Carbon::now())->days;