我制作了一个以某种方式以无限循环结束的范围。在将其简化为最小的可重现示例时,我想到了这一点:
public function apply(Builder $builder, Model $model)
{
Log::info('[Search] SQL: ' . $builder->toSql() . " Bindings: " . implode(', ', $builder->getBindings()));
}
范围以标准方式在模型中实现:
protected static function booted()
{
static::addGlobalScope(new AuthorizationScope());
}
如果我像这样运行代码,我最终会遇到以下错误:
已达到“256”的最大函数嵌套级别,正在中止!
为什么无法在范围内获取 SQL 转储?这可以以某种方式修改吗?在其他地方启用数据库查询日志等选项并不是这个问题的真正一部分。