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



我在php Laravel 5中有类保留。我创建了本地范围查询。当我使用特殊字数统计时,它是范围函数名称中总和的聚合,我的应用程序挂断了。当我将函数名称更改为不像 total 之类的关键字时,一切正常。为什么当我使用特殊关键字时应用程序挂起?流程如何运作。堆栈溢出?

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

我将其返回为:

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

我的函数当前月份:

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();

一切正常。

那么为什么会挂呢?

你不需要为count()添加作用域,此外,它已经被占用了,除非你想count重命名为 total

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

最新更新