Я делаю фильтр для своих продуктов, и мне нужно сделать что-то вроде http://example.com/products?type=laptop&CPU = i7. Это здорово, но мне нужно сделать это с множественным выбором спецификаций. Возможно, пользователь захочет выбрать Core i7 и Core i5, чтобы сравнить цены на ноутбуки. Любая идея, как сделать этот RESTful на Laravel?
Это не 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']
Другой, более «родной» способ — создать массив из фактического URL, что можно сделать, просто добавив []
на имя вашего выбора (при условии, что ваши фильтры сделаны с помощью элемента 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;
или что вы делаете потом.
Других решений пока нет …