/** * Controller override: Extend the query used for populating the list * after the default query is processed. * @param \October\Rain\Database\Builder $query */ public function listExtendQuery($query, $definition = null) { switch ($definition) { case 'archived': $query->where('archived', '=', true); break; default: $query->where('archived', '=', false); break; } }
/** * Select an inventory by it's selection signature * * @param \October\Rain\Database\Builder $query * @param array $selections * @return \October\Rain\Database\Builder */ public function scopeWhereHasSelections($query, $selections) { return $query->where(function ($inventory) use($selections) { $inventory->has('selections', '=', count($selections)); foreach ($selections as $id) { $inventory->whereHas('selections', function ($selection) use($id) { $selection->where('id', $id); }); } }); }
/** * Select a campaign by CMS object * * @param Builder $query * @param Form $form * @return Builder */ public function scopeWhereCmsObject(Builder $query, Form $form) { if ($form->model instanceof Layout) { $type = 'layout'; } elseif ($form->model instanceof Page) { $type = 'page'; } elseif ($form->model instanceof Partial) { $type = 'partial'; } else { $type = 'unknown'; } return $query->where('file_type', $type)->where('file_name', $form->model->getFileName()); }
public function scopeCurrentMonth(Builder $query) { $query->where('month', date('m'))->where('year', date('Y')); }
/** * Returns categories that are or aren't inherited by other categories. The * type of query made is dependent on "select". "whereHas" returns those * that are inherited, and "whereDoesntHave" will return the opposite. * * @param \October\Rain\Database\Builder $query * @param \Model|array|integer $category * @param string $select * @return \October\Rain\Database\Builder */ public function scopeIsInheritedBy($query, $category, $select = 'whereHas') { if (is_array($category)) { $ids = $category; } elseif (is_object($category)) { $ids = [$category->id]; } else { $ids = [$category]; } return $query->where(function ($outer) use($ids, $select) { $outer->where(function ($inner) use($ids) { foreach ($ids as $id) { $inner->where('id', '<>', $id); } })->{$select}('ancestors', function ($inner) use($ids) { $inner->whereIn('parent_id', $ids); }); }); }
/** * Add a basic where clause to the query. * * @param string $column * @param string $operator * @param mixed $value * @param string $boolean * @return $this * @static */ public static function where($column, $operator = null, $value = null, $boolean = 'and') { //Method inherited from \Illuminate\Database\Eloquent\Builder return \October\Rain\Database\Builder::where($column, $operator, $value, $boolean); }
/** * Returns products that have inventories in stock * * @param \October\Rain\Database\Builder $query * @return \October\Rain\Database\Builder */ public function scopeIsEnabled($query) { return $query->where('is_enabled', true); }