laravel5.1(eloquent)order&延伸返回的集合

时间:2016-04-08 07:39:00

标签: sql eloquent laravel-5.1 where-clause

我有一个使用这种设计的交易表:

|id|value|payed_out|...|created_at|updated_at

现在我想返回按日期排序的所有交易,限制为15:

  • not payed_out(表示payed_out == null)
  • 不超过24小时(表示从现在到“created_at”时间戳的时间戳的所有交易都是< 24h)

查询可能类似于:

Transactions::where(payed_out, null)->where(?how to perform the not older check?) ->orderBy('created_at', 'desc') ->take(15)
           ->get();

我需要“扩展”我上面描述的查询的返回集合。

在我看来,我希望显示交易“到期”之前的时间,这意味着我需要在事务的“created_at”字段中“添加”一个字段到包含“time”的集合中。 / p>

希望你明白我的需要。

1 个答案:

答案 0 :(得分:0)

您可以尝试使用Carbon减去当前时间戳。见Carbon Addition and Subtraction。字段created_at必须大于此时间戳才能被视为不超过1天。例如:

Transactions::where('payed_out', null)->
          where('created_at', '>', \Carbon\Carbon::now()->subDay())->
          orderBy('created_at', 'desc') ->take(15)->get();