public function insert() { $queryBuilder = new QueryBuilder('insert'); $queryBuilder->setInsertInto($this->getTableName()); foreach ($this->columns as $key => $column) { $column->onInsert($queryBuilder); } $sql = $queryBuilder->prepare(); DB::post($sql); $this->columns[$this->index]->setValue(DB::getInsertId()); foreach ($this->columns as $key => $column) { $column->onAfterInsert(); } return true; }