如何在laravel中的where子句内过滤结果?

时间:2016-09-15 05:31:52

标签: php mysql laravel

我是laravel的新手,我正在构建一个小型应用程序,当事件日期距离当前日期一周时会发出警报。这是我的控制器代码

public function index()
{

    $domain_count = domain_details::get()->count();
    $domain_alert = domain_details::
    where('domain_ex_date','>',date('Y-m-d'))
    ->get();
 }

domain_ex_date的格式为(YYYY-mm-dd),存储在Carbon的帮助下。当domain_ex_date远离当前日期时,行where('domain_ex_date','>',date('Y-m-d'))会将记录全部记录下来。即2017-06-12> 2016-09-15获得全部记录。这里我想做的是,我想过滤并获得距离当前日期仅一周的唯一记录。我该怎么做呢 ?我尝试过subweek()和subdays(),但没有任何帮助。

我应该只在满足这个条件domain_ex_date - current date = 7

时才能得到记录

3 个答案:

答案 0 :(得分:1)

您可以使用dotnet watch

strtotime()

答案 1 :(得分:1)

使用Carbon! 碳是日期扩展的内置......试试吧! :)

$week = Carbon::now()->addWeek();
$now = Carbon::now();

domain_details::where("domain_ex_date","<" $week)
    ->where("domain_ex_date", ">" $now)
    ->get()

或者您也可以使用addDays($ days)方法!

$week = Carbon::now()->addDays(7);    

答案 2 :(得分:0)

我用碳,这对我来说效果很好

 $week = Carbon::now()->subWeek();
 $now = Carbon::now();

 $domain_count = domain_details::get()->count();
 $domain_alert = domain_details::where("domain_ex_date",">", $week)
                               ->where("domain_ex_date", "<" ,$now)
                               ->get();