Пример #1
0
 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;
 }
Пример #2
0
 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;
 }