Example #1
0
 /**
  * Montar estrutura de busca pelo $searchQuery.
  *
  * @param $searchQuery
  *
  * @return array
  */
 public function execute($searchQuery)
 {
     if (count($this->fields) == 0) {
         return [];
     }
     if ($searchQuery == '') {
         return [];
     }
     $searchQuery = Str::ascii($searchQuery);
     $tokens = $this->tokens($searchQuery);
     $list = [];
     foreach ($this->fields as $key => $field) {
         $type = $this->model->getAttrCast($key);
         $method = sprintf('field%s', Str::studly($type));
         $field = $this->prepareField($field);
         if (method_exists($this, $method)) {
             if (array_key_exists($key, $list) != true) {
                 $list[$key] = [];
             }
             call_user_func_array([$this, $method], [&$list[$key], $field, $tokens]);
         }
     }
     return $list;
 }