我正在使用foreach检索注释,并且我尝试在if语句中编写代码,声明如果时间戳created_at和updated_at相等,那么我将仅显示在时间戳创建但是如果它们不同我想要显示两者。我该怎么办?到目前为止,我有这个错误告诉我他们是if错误的错误......
模特:
public function comments()
{
return $this->hasMany('App\Comment','batsmen_id')->orderBy('created_at', 'DESC');
}
控制器:
public function getSingle($slug)
{
//fetch from the database based on slug.
$batsmen = Batsmen::with('comments')->where('slug', '=', $slug)->first();
//return view
return view('batsmen.single')->withBatsmen($batsmen);
}
查看:
@foreach($batsmen->comments as $comments)
@if($comments->created_at = $comments->updated_at)
Posted at {{$comments->created_at}}
@else
Posted at {{$comments->created_at}}
Updated at {{$comments->updated_at}}
@endIf
答案 0 :(得分:1)
@if($comments->created_at = $comments->updated_at)
这是不正确的,单个等号是赋值运算符。要与vales进行比较,您需要使用==
或===
。
==
比较两个值,而===
比较值和类型。
Laravel在整个框架中使用Carbon
库来处理日期。它有一些有用的辅助函数,用于比较许多不同格式的日期,从而节省了一些工作量。
Carbon::parse($date1)->eq(Carbon::parse($date2))
会告诉你两个日期是否相等。
当你有碳物品时,你可以做到
$comments->created_at->eq( $comments->updated_at);