Laravel 5.1 - 比较碳日期

时间:2016-04-17 14:16:13

标签: laravel model eloquent blade php-carbon

在这里,我需要检查我的应用中的文章拍卖是否正常,所以我在文章模型中写道:

public function scopeCloseauction($query){
        $query->where(Carbon::parse('to')->subDays('auction_end'),'>',Carbon::now());
    }

并查看我:

@if ($article->Closeauction())
                            <td>
                           auction is live
                        </td>
                            @else
                            <td>
                             auction is closed
                            </td>
                        @endif

但我有一个问题,因为我收到了错误: enter image description here

更新 我也尝试: 在模型中添加功能:

public function isLive($to,$auction_end) {
    $first = Carbon::create($to).subDays($auction_end);
    $second = Carbon::now();
        return ($first->lte($second));
    }

并在视野中:

@if ($article->isLive($article->to,$article->auction_end))
                            <td>
                            live
                        </td>
                            @else
                            <td>
                                closed
                            </td>
                        @endif

但现在给我这个错误:

  

Carbon.php第425行中的ErrorException:找到意外数据。   发现意外数据。发现意外数据。追踪数据(查看:   C:\瓦帕\ WWW \项目\资源\视图\物品\ index.blade.php)

2 个答案:

答案 0 :(得分:1)

您可以在Article模型中添加此类功能:

public function isLive() 
{
    $first = Carbon::parse($this->to)->subDays($this->auction_end);
    $second = Carbon::now();
    return $first->lte($second);
}

现在在您的视图中,您可以使用:

@if ($article->isLive())
    <td>
      live
    </td>
    @else
    <td>
        closed
    </td>
@endif

答案 1 :(得分:0)

我认为您的问题出在此处:Carbon::parse('to')。你想在这做什么? Carbon :: parse方法尝试将字符串日期转换为Carbon日期。 See the doc。我不认为Carbon可以解析字符串'to'。如果您想检查日期之间的差异you should have a look,请使用diffInDays等适用的方法。