Laravel 查询生成器传递多个参数作为逗号分隔列表不起作用

Mic*_*ael 1 php laravel-5 laravel-query-builder

我正在使用 spatie/laravel-query-builder 来制作范围过滤器。在文档中我读到了这个:

您甚至可以通过将逗号分隔的列表传递给过滤器来将多个参数传递给作用域:

GET /events?filter[starts_between]=2018-01-01,2018-12-31
Run Code Online (Sandbox Code Playgroud)

因此,我在模型中创建了一个范围过滤器,如下所示:

public function scopeStartsBetween(Builder $query, $dates): Builder
{
    dd($dates);

    return $query->whereBetween('created_at', array($dates[0], $dates[1]));
}
Run Code Online (Sandbox Code Playgroud)

我的请求如下所示:

http://127.0.0.1:8000/?filter[starts_between]=2018-10-15,2018-10-17
Run Code Online (Sandbox Code Playgroud)

其结果dd($dates)是这样的:

"2018-10-15"
Run Code Online (Sandbox Code Playgroud)

因此,多个参数的逗号分隔列表不起作用,或者我做错了什么?

小智 7

班级FiltersScope返校...$values

通过链接解释这意味着什么PHP 中三点 (...) 的含义

在模型作用域函数中,我们必须使用相同的构造,例如

public function scopeStartsBetween(Builder $query, ...$dates): Builder
Run Code Online (Sandbox Code Playgroud)