Php Laravel查询生成器以逗号分隔的列表形式传递多个参数不起作用
我正在使用Spatial/laravel查询生成器制作范围过滤器。 我在文档中读到: 您甚至可以通过传递逗号向作用域传递多个参数 过滤器的单独列表:Php Laravel查询生成器以逗号分隔的列表形式传递多个参数不起作用,php,laravel-5,laravel-query-builder,Php,Laravel 5,Laravel Query Builder,我正在使用Spatial/laravel查询生成器制作范围过滤器。 我在文档中读到: 您甚至可以通过传递逗号向作用域传递多个参数 过滤器的单独列表: GET /events?filter[starts_between]=2018-01-01,2018-12-31 因此,我在模型中制作了一个范围过滤器,如下所示: public function scopeStartsBetween(Builder $query, $dates): Builder { dd($dates); r
GET /events?filter[starts_between]=2018-01-01,2018-12-31
因此,我在模型中制作了一个范围过滤器,如下所示:
public function scopeStartsBetween(Builder $query, $dates): Builder
{
dd($dates);
return $query->whereBetween('created_at', array($dates[0], $dates[1]));
}
http://127.0.0.1:8000/?filter[starts_between]=2018-10-15,2018-10-17
我的请求如下所示:
public function scopeStartsBetween(Builder $query, $dates): Builder
{
dd($dates);
return $query->whereBetween('created_at', array($dates[0], $dates[1]));
}
http://127.0.0.1:8000/?filter[starts_between]=2018-10-15,2018-10-17
dd$日期的结果如下:
因此,多个参数的逗号分隔列表不起作用,或者我做错了什么?问题是,多个参数应作为作用域函数的单独参数处理:
public function scopeStartsBetween(Builder $query, $from, $to): Builder
{
return $query->whereBetween('created_at', array(Carbon::parse($from), Carbon::parse($to)));
}
这就解决了问题。问题在于多个参数应作为作用域函数的单独参数处理:
public function scopeStartsBetween(Builder $query, $from, $to): Builder
{
return $query->whereBetween('created_at', array(Carbon::parse($from), Carbon::parse($to)));
}
这就是关键。类过滤器范围返回…$值
解释链接的含义
例如,在模型作用域函数中,我们必须使用相同的构造
public function scopeStartsBetween(Builder $query, ...$dates): Builder
类FilterScope返回…$values
解释链接的含义
例如,在模型作用域函数中,我们必须使用相同的构造
public function scopeStartsBetween(Builder $query, ...$dates): Builder
尝试filter[starts\u-between][]=2018-01-01和filter[starts\u-between][]=2018-12-31您能显示您的请求路线吗?@urfusion我发现了问题请查看我的答案:向上投票并接受,如果可能请尝试filter[starts\u-between][]=2018-01-01和filter[starts\u-between][]=2018-12-31您能为这个请求显示您的路线吗?@urfusion我发现了问题请查看我的答案:向上投票,如果可能请接受