public static function logg($method, $data, $limit = null, $offset = 0) { $entity = new self(); $join = self::select('number')->distinct('number')->where('method', $method)->whereBetween('created', $data['date'])->orderBy('id', 'desc')->skip($offset); $binds = [$method, $data['date']['start'], $data['date']['end']]; if ($limit !== null) { $join->take($limit); } else { $join->take(100); } if ($data['id'] !== null) { $join->where('pointId', $data['id']); $binds[] = $data['id']; } if ($data['sum'] !== null) { $join->where('param', 'sum'); $join->where('value', $data['sum']); $binds[] = 'sum'; $binds[] = $data['sum']; } elseif ($data['num'] !== null) { $join->where('param', 'order'); $join->where('value', $data['num']); $binds[] = 'order'; $binds[] = $data['num']; } $states = $entity->join(new \Illuminate\Database\Query\Expression('(' . $join->toSql() . ') b'), $entity->table . '.number', '=', 'b.number')->toSql(); $states = \DB::connection($entity->connection)->select($states, $binds); return $states; }
/** * Creates a many2many relation * @param $modelClass * @param $connection * @param array $options * @return Relation */ public static function manyToMany($modelClass, $connection, $options = []) { $options['type'] = self::MANY_TO_MANY; $options['modelClass'] = $modelClass; $connection = explode('(', $connection); $table = $connection[0]; list($c1, $c2) = explode(',', $connection[1]); $r = new self($options); $c1 = trim($c1); $c2 = trim($c2); $r->join(trim($table), [["t.__PK__", "j.{$c1}", "="]])->compare(["j.{$c2}" => "r." . $modelClass::getDb()->getTablePk($modelClass::getTableName())]); return $r; }
public static function create(SR_Player $player, $name) { $clan = new self(array('sr4cl_id' => '0', 'sr4cl_name' => $name, 'sr4cl_founder' => $player->getID(), 'sr4cl_slogan' => '', 'sr4cl_date' => GWF_Time::getDate(), 'sr4cl_members' => '0', 'sr4cl_max_members' => self::MIN_MEMBERCOUNT, 'sr4cl_storage' => '0', 'sr4cl_max_storage' => self::MIN_STORAGE, 'sr4cl_money' => '0', 'sr4cl_max_money' => self::MIN_MONEY, 'sr4cl_options' => '0')); if (false === $clan->insert()) { echo GWF_HTML::err('ERR_DATABASE', array(__FILE__, __LINE__)); return false; } if (false === $clan->join($player)) { echo GWF_HTML::err('ERR_DATABASE', array(__FILE__, __LINE__)); return false; } if (false === SR_ClanMembers::setClanOptions($clan->getID(), $player->getID(), SR_ClanMembers::FOUNDER)) { echo GWF_HTML::err('ERR_DATABASE', array(__FILE__, __LINE__)); return false; } if (false === SR_ClanHistory::onCreate($clan, $player)) { echo GWF_HTML::err('ERR_DATABASE', array(__FILE__, __LINE__)); return false; } return $clan; }