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

时间:2018-10-19 06:58:34

标签: php laravel-5 laravel-query-builder

我正在使用spatie / laravel-query-builder进行范围过滤。 在文档中,我读到了:

  

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

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

dd($dates)的结果是:

"2018-10-15"

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

2 个答案:

答案 0 :(得分:1)

问题在于,多个参数应作为范围函数的单独参数处理:

<div id='id'>
  text that I want to select
  <p>text that I don't want</p>
</div>

这可以解决问题。

答案 1 :(得分:0)

def show_id(): for image_id in soup.findAll(itemprop="image"): preview_id = image_id['src'].split('/v/')[1] preview_id = preview_id.split('?')[0] return preview_id def get_title(): title = soup.find('title').get_text() return title 返回FiltersScope

解释链接Meaning of Three dot (...) in PHP的含义

例如,在“模型范围”功能中,我们必须使用相同的构造

...$values