我正在制作我的第一个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;
}
正确的方法是什么?
答案 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