/** * Find data by multiple values in one field * * @param $field * @param array $values * @param array $columns * * @return mixed */ public function findWhereIn($field, array $values, $columns = ['*']) { $this->applyCriteria(); $model = $this->model->whereIn($field, $values)->get($columns); $this->resetModel(); return $this->parserResult($model); }
/** * Find data by multiple values in one field * * @param $field * @param array $values * * @return mixed */ public function whereIn($field, array $values) { $this->applyCriteria(); $this->model = $this->model->whereIn($field, $values); return $this; //return $this->parserResult($model); }
/** * Add whereIn condition for next query. * * @param string $column * @param array $value * * @return void */ public function whereIn($column, array $value) { $this->model = $this->model->whereIn($column, $value); return $this; }
/** * @param string $field * @param array $whereIn * @return mixed */ public function whereIn($field, $whereIn = array()) { return $this->model->whereIn($field, $whereIn)->get(); }
/** * Map the given results to instances of the given model. * * @param mixed $results * @param \Illuminate\Database\Eloquent\Model $model * @return Collection */ public function map($results, $model) { if (count($results['hits']['total']) === 0) { return Collection::make(); } $keys = collect($results['hits']['hits'])->pluck('_id')->values()->all(); $models = $model->whereIn($model->getKeyName(), $keys)->get()->keyBy($model->getKeyName()); return collect($results['hits']['hits'])->map(function ($hit) use($model, $models) { return $models[$hit['_id']]; }); }
/** * Get multi model by ids * * @param string slug * @return object object of model */ public function byIds($ids) { return $this->model->whereIn('_id', $ids)->get(); }
/** * Get list record from list data * @param $field * @param array $data * @return mixed */ public function whereIn($field, $data = array()) { return $this->model->whereIn($field, $data); }
/** * @param EloquentBuilder|QueryBuilder|Model $query * @param string $column * @param EloquentBuilder|QueryBuilder|Model $subQuery * @param string $subQueryColumn * * @return QueryBuilder */ public function scopeWhereInSubQuery($query, $column, $subQuery, $subQueryColumn) { if (!Str::contains($column, '.')) { /** @var Model|BetterEloquentTrait $model */ $model = $query->getModel(); $column = $model->getField($column); } $subQuery = $subQuery->toSubQuery($subQueryColumn, true); return $query->whereIn($column, $subQuery); }