public static function getCoverProducts() { $coverProducts = new self(); $coverProducts->where(array('is_cover' => true, 'status' => 'publish')); $coverProducts->order('created_on', 'desc'); return $coverProducts; }
/** * インデックスを保持したままソートする */ public static function asort(array $objects, $method, $order = 'asc') { $sort = new self($objects); $sort->method($method); $sort->order($order); $sort->asort(true); return $sort->objects(); }
/** * RequestのPaginator * @param \ebi\Request $req * @param integer $default_paginate_by * @param integer $max_paginate_by * @return \ebi\Paginator */ public static function request(\ebi\Request $req, $default_paginate_by = 20, $max_paginate_by = 100) { $paginate_by = $req->in_vars('paginate_by', $default_paginate_by); if ($paginate_by > $max_paginate_by) { $paginate_by = $max_paginate_by; } $self = new self($paginate_by, $req->in_vars('page', 1)); if ($req->is_vars('order')) { $o = $req->in_vars('order'); $p = $req->in_vars('porder'); if ($o == $p) { if ($o[0] == '-') { $o = substr($o, 1); } else { $o = '-' . $o; } $req->vars('order', $o); } $self->order($o); } $self->cp($req->ar_vars()); return $self; }
public static function factory($conditions) { if ($conditions instanceof BaseClass) { return $conditions; } $select = new self(); if (is_array($conditions) || $conditions instanceof \Traversable) { foreach ($conditions as $name => $condition) { switch ($name) { case 'columns': if (is_array($condition) && array_key_exists(0, $condition) && is_array($condition[0])) { call_user_func_array(array($select, 'columns'), $condition); continue; } $select->columns($condition); break; case 'combine': if (is_array($condition)) { call_user_func_array(array($select, 'combine'), $condition); continue; } $select->combine($condition); break; case 'from': $select->from($condition); break; case 'group': $select->group($condition); break; case 'having': if (is_array($condition) && array_key_exists(1, $condition) && ($condition[1] == PredicateSet::OP_AND || $condition[1] == PredicateSet::OP_OR)) { call_user_func_array(array($select, 'having'), $condition); continue; } $select->having($condition); break; case 'join': call_user_func_array(array($select, 'join'), $condition); break; case 'limit': $select->limit($condition); break; case 'offset': $select->offset($condition); break; case 'order': $select->order($condition); break; case 'where': if (is_array($condition) && array_key_exists(1, $condition) && ($condition[1] == PredicateSet::OP_AND || $condition[1] == PredicateSet::OP_OR)) { call_user_func_array(array($select, 'where'), $condition); continue; } $select->where($condition); break; default: throw new \Exception("Invalid condition ({$name})"); } } return $select; } throw new \Exception(sprintf('Invalid conditions type (%s)', is_object($conditions) ? get_class($conditions) : gettype($conditions))); }