【问题标题】:Laravel Eloquent where with calculation on valueLaravel Eloquent 在哪里计算价值
【发布时间】:2017-05-07 07:04:49
【问题描述】:

我的表中有一个名为date 的列,其类型为TIMESTAMP

我正在尝试添加一个非常简单的范围,它将返回所有日期为明天的结果。

我想我希望能够做这样的事情:

public function scopeTomorrow($query)
{
    return $query->where('date', function ($date) {
        return \Carbon\Carbon::parse($date)->isTomorrow();
    });
}

$date 变量目前只是查询构建器。

如何创建一个where 语句来接受该值并对其进行某种检查?

【问题讨论】:

    标签: php laravel eloquent


    【解决方案1】:

    你可以这样做:

    return $query->where('date', '>=', Carbon::tomorrow())
                 ->where('date', '<=', Carbon::tomorrow()->endOfDay());
    

    或者:

    return $query->whereBetween('date', [Carbon::tomorrow(), Carbon::tomorrow()->endOfDay()]);
    

    另外,您可能想将date 添加到$dates 变量中。

    【讨论】:

    • 谢谢@Alexey。对于未来,这是否意味着无法真正接受价值?
    • 我认为这里不可能使用isTomorrow() 之类的东西。
    【解决方案2】:

    你可以这样做:

    public function scopeTomorrow($query)
    {
        $tomorrow = \Carbon\Carbon::now()->addDay(1);
    
        return $query->where('date', '=', $tomorrow);
    }
    

    【讨论】:

      猜你喜欢
      • 2021-06-13
      • 2015-04-22
      • 2021-06-13
      • 1970-01-01
      • 2013-07-27
      • 2016-08-12
      • 2018-02-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多