コード例 #1
0
ファイル: FormFilter.php プロジェクト: larakit/lk
 function addFilterManyToMany($relation, $label, array $options, array $default = [])
 {
     $this->form->putTbSelect2($relation)->loadOptions($options)->setMultiple()->setLabel($label);
     $this->form->initValues([$relation => $default]);
     $values = (array) \Input::get($relation, $default);
     $key = $this->model->getRelation($relation)->getOtherKey();
     if (count($values)) {
         $this->model->with($relation);
         $this->model->whereHas($relation, function ($query) use($values, $options, $relation, $key) {
             $filters = [];
             $query->whereIn($key, $this->ids($values));
             foreach ($options as $k => $label) {
                 if (in_array($k, $values)) {
                     $filters[] = $relation . '_' . $k;
                     //                        $query->orWhere('id', '=', $k);
                 }
             }
             //                dd();
             //                dd($this->model->listsExt());
             //                dd($key, $this->ids($values), $values, $options, $relation);
             $this->addJsFilter(implode('|', $filters));
         });
     }
 }