Laravel RESTful API 具有多个参数值

Laravel RESTful API with multiple values of params

我正在为我的产品制作过滤器,我需要做类似 http://example.com/products?type=laptop&cpu=i7 的事情。这很棒,但我需要使用多个 select 规范来完成此操作。也许用户希望select 酷睿i7和酷睿i5来比较笔记本电脑的价格。知道如何在 laravel 上执行此 RESTful 吗?

这不是 Laravel 特定的,但是您 可以 做的是将您的想法放在分隔符上(fx.逗号)并做一个简单的 explode() 将它们分开。

//http://example.com/products?type=laptop&cpu=i7,i5,amdathlon
$cpus = explode("," Input::get('cpu')); //Will produce an array ['i7','i5','amdathlon']

另一种更 "native" 的方法是在实际的 URL 中创建一个数组,只需将 [] 添加到 select 的名称即可](假设您的过滤器由 select 元素构成)

<select name="cpu[]" multiple>
...
</select>

然后可以像这样访问:

//http://example.com/products?type=laptop&cpu[]=i7&cpu[]=i5&cpu[]=amdathlon
$cpus = Input::get('cpu'); //['i7','i5','amdathlon']

然后,您可以执行以下操作:

Cpu::whereIn('core', $cpus)->laptops; 

或者之后你在做什么。