为什么将'count'关键字用作localScope函数名称时应用程序挂起

时间:2019-01-29 11:23:04

标签: php laravel laravel-5

我在php Laravel 5中有预订类。 我创建localScope查询。 当我使用特殊的字数统计时,该字数总计是作用域函数名称中的总和,我的应用程序挂断了。 当我将函数名称更改为类似于total之类的关键字时,一切正常。 为什么当我使用特殊关键字时应用程序挂起?过程如何运作。堆栈溢出 ?

class Reservation extends Model
{
    public function scopecount($query){
      return $query->count();
    }
}

我将其返回为:

$count = Reservation::currentMonth()->count();

我的函数currentMonth:

public function scopecurrentMonth($query){
  return $query->where('date_from','>=', Carbon::now()->startOfMonth())
      ->where('date_to','<=', Carbon::now()->endOfMonth());
}

那为什么挂呢? 当我将名称计数更改为总数时:

public function scopetotal($query){
    return $query->count();
}

$count = Reservation::currentMonth()->total();

一切正常。

那为什么挂呢?

1 个答案:

答案 0 :(得分:1)

您不需要为count()添加一个范围,而且它已经被占用,除非您要将count重命名为total

您只需将->count()添加到查询中,它将返回int