function addFilterInCheckboxButton($form_field, $label, array $options, array $js_filters, array $default = [1 => 1], $db_field = null) { if (!$db_field) { $db_field = $form_field; } $this->form->putTbGroupCheckboxButton($form_field, $options)->setLabel($label); $this->form->initValues([$form_field => $default]); $values = (array) \Input::get($form_field, $default); if (count($values)) { $this->model->where(function ($query) use($values, $options, $db_field, $js_filters) { $filters = []; foreach ($options as $k => $label) { if (in_array($k, $values)) { $filters[] = Arr::get($js_filters, $k); if (is_array($db_field)) { $condition = Arr::get($db_field, $k); $query->orWhere($condition); } else { $query->orWhere($db_field, '=', $k); } } } $this->addJsFilter(implode('|', $filters)); }); } }