【问题标题】:Laravel filters system with multi checkbox带有多复选框的 Laravel 过滤器系统
【发布时间】:2017-03-17 23:42:17
【问题描述】:

我正在使用 laravel 5.4,我想过滤搜索。这是我的前端

我的代码是这样的

class DeviceFilterController extends Controller
{
    public function filter(Feature $feature){

        $marks = isset($_POST["mark"]) ? $_POST["mark"] : null;

        $feature = $feature->newQuery();

        if(isset($marks ))
        {
            foreach ($marks as $value)
            {
                $feature->where('device_mark', $value);
            }
        }

        return $feature->get();

    }
}

结果只有一个条目

【问题讨论】:

  • 在视图中显示您的代码

标签: php laravel checkbox filter


【解决方案1】:

您可以使用whereIn() 采取不同的方法,假设您的mark 输入是一个ID 数组,例如[1, 4, 8, 22]

public function filter(Request $request) 
{
    $features = Feature::when($request->has('mark'), function($query) use ($request) {
        return $query->whereIn('device_mark', $request->mark); //Assuming you are passing an array of IDs
    })->get();

    return $features;
}

when() 闭包只会在您发送“标记”输入时执行。没有什么时候做它看起来像这样

public function filter(Request $request) 
{
    $features = [];

    if ( $request->has('mark') && $request->mark != '' ) {
        $features = Feature::whereIn('device_mark', $request->mark)->get();
    } else {
        $features = Feature::get();
    }

    return $features;
}

【讨论】:

    猜你喜欢
    • 2019-05-15
    • 2017-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-05
    • 2015-08-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多