与时间戳有关的IF声明

时间:2018-01-23 01:41:02

标签: laravel laravel-5 eloquent laravel-5.4 laravel-5.5

我正在使用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

1 个答案:

答案 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);