laravel查询过滤器数组

时间:2018-05-25 03:13:17

标签: php mysql laravel

我一直试图在laravel中做这个mysql等价物: SELECT * FROM toys WHERE type_id In(1,2,3)

这是我的控制器代码:

public function index(Request $request)
{
    $type = (new Type)->newQuery();

if($request->has('type_id')){
        $type->whereIn('type_id',$request->type_id));
    }

    return $type->paginate(10);
}

我们的想法是能够在URL中查询db中的数据: 本地主机/ toyslist?TYPE_ID = 1,2,3

获得了无效参数foreach()

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:3)

使用explode将字符串转换为数组

public function index(Request $request)
{
    $type = (new Type)->newQuery();

if($request->has('type_id')){
        $typeArray = explode(",",$request->type_id)
        $type->whereIn('type_id',$typeArray ));
    }

    return $type->paginate(10);
}