使用laravel / postgres

时间:2015-11-04 11:54:19

标签: postgresql date laravel eloquent

我正在制作我的第一个laravel项目,使用postgres,我希望能够访问本月生日的所有人(我的人员表中有一个生日字段,' sa日期)。我环顾四周,无法找到正确的语法来访问月份并与当月比较。

我在我的控制器中尝试了几种方法:

1)这里箭头操作符对于birthdate-> gt;月是意料之外的:

  public function get_birthday_people()
{
    $this_month = \Carbon\Carbon::now()->month;

    $birthday_people = Person::all()
        ->Where('birthdate'->month, $this_month)
        ->Where('active', true)
        ->get();

    return $birthday_people;

}

2)在这里我调用未定义的方法Illuminate \ Database \ Eloquent \ Collection :: whereMonth():

public function get_birthday_people()
{
    $birthday_people = Person::all()
        ->whereMonth('birthdate', '=', Carbon::now()->month)
        ->Where('active', true)
        ->get();
    return $birthday_people;
}

正确的方法是什么?

1 个答案:

答案 0 :(得分:1)

尝试这样的事情

 $birthday_people = Person::all()
    ->where("date_trunc('month', birthdate)", "=", Carbon::now()->month)
    ->where("active", true)->get();

OR

$birthday_people = Person::all()
        ->where("extract(MONTH from birthdate)", "=", Carbon::now()->month)
        ->where("active", true)->get();

Extract等于MySQL MOTNH()或YEAR()等。 Ref