/** * Runs an update query against a set of models * @param array $attributes * @return int */ public function update(array $attributes) { $this->_query->type = QueryType::$UPDATE; $this->_query->updateAttributes = $attributes; return QueryExecutor::prepare($this->_db, $this->_query)->execute(); }
/** * @test */ public function shouldHandleSubQueries() { //given Product::create(array('name' => 'prod1', 'description' => 'd')); Product::create(array('name' => 'prod1', 'description' => 'd')); Product::create(array('name' => 'prod2', 'description' => 'd')); $query = Query::select(array('count(*) AS c'))->from(Query::select(array('name', 'count(*) c'))->from('products')->groupBy('name')->where(array('description' => 'd')), 'sub')->where(array('c' => 2)); $executor = QueryExecutor::prepare(Db::getInstance(), $query); //when $result = $executor->fetch(); //then $this->assertEquals(array('c' => 1), $result); }
public function update() { $this->_callBeforeSaveCallbacks(); $attributes = $this->getAttributesForUpdate(); if ($attributes) { $query = Query::update($attributes)->table($this->_modelDefinition->table)->where(array($this->_modelDefinition->primaryKey => $this->getId())); QueryExecutor::prepare($this->_modelDefinition->db, $query)->execute(); } $this->_callAfterSaveCallbacks(); }