我从数据库中获取了一些值,并将这些值从控制器传递到视图中。现在我想在 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"
我该怎么做?
答案 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;