Laravel错误:在字符串上调用成员函数format()

时间:2016-11-10 17:11:25

标签: php laravel

我正在使用Laravel 5.3

expired_at中有一个字段articles

public function store(Request $request)
{
    $data=[
         'expired_at'=>Carbon::now()->addDays(30)->endOfDay()
    ];
    $article=Article::create(array_merge($request->all(),$data));

    return redirect('/artilces');
}

视图:

{{$article->expired_at->format('Y-m-d')}}

错误:

  

在字符串上调用成员函数format()(视图:D:\ wnmp \ www \ laravel-5-3-dev \ resources \ views \ artiles \ index.blade.php)

为什么?

4 个答案:

答案 0 :(得分:30)

Article课程中添加以下属性:

/**
 * The attributes that should be mutated to dates.
 *
 * @var array
 */
protected $dates = ['expired_at'];

Docs

答案 1 :(得分:22)

我认为这是方法。它不会抛出错误

{{ Carbon\Carbon::parse($article->expired_at)->format('Y-m-d') }}

答案 2 :(得分:4)

如果使用DB ::检索复杂数据,则无法使用mutators。 在这种情况下,我使用这个:

{{ date('m-Y', strtotime($hora->Fecha)) }}

其中“Fecha”是日期时间值。

答案 3 :(得分:0)

在模型的 $dates 上声明的字段。

试试这个:

optional($article->expired_at)->format('Y-m-d')