public function value($parent_field = false) { if ($parent_field) { $value = (new Query())->select([[DB::expr('MAX(' . $this->_field . ')'), $this->_field]])->from($this->_model->get_table())->where($parent_field, '=', $this->_model->get($parent_field))->one(); if ($value) { $value = $value[$this->_field] ?: 0; } } else { $value = (new Query())->select([[DB::expr('MAX(' . $this->_field . ')'), $this->_field]])->from($this->_model->get_table())->one(); if ($value) { $value = $value[$this->_field] ?: 0; } } return $value + 1; }
public function count() { $this->_type = Database::SELECT; $db = \Mii::$app->db; $old_select = $this->_select; $old_order = $this->_order_by; if ($this->_distinct) { $this->select([[DB::expr('COUNT(DISTINCT ' . $db->quote_column($this->_select[0]) . ')'), 'count']]); } else { $this->select([DB::expr('COUNT(*) AS `count`')]); } $as_object = $this->_as_object; $this->_as_object = null; $this->_order_by = []; $count = $this->execute()->column('count', 0); $this->_select = $old_select; $this->_order_by = $old_order; $this->_as_object = $as_object; return $count; }