Beispiel #1
0
 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));
         });
     }
 }