/** * @param $object * @param array $data * * @return mixed */ private function update($object, array $data) { //only save when a change is detected if (!empty($data)) { $queryBuilder = $this->manager->getDriver()->getQueryBuilder(); $primaryKey = $this->getPrimaryKey(); $this->manager->postPendingQuery(new PendingQuery($this, PendingQuery::TYPE_UPDATE, $queryBuilder->update($this->getTable())->values($queryBuilder->createPositionalParameter($data))->where($queryBuilder->expression()->eq($primaryKey, $queryBuilder->createPositionalParameter($this->getState($object)->getOriginalFieldData($primaryKey)))))); } return $this->getPrimaryKeyValue($object); }
/** * Update records with $data where $fieldName equals to or is an element of $fieldValue * * Note: previous WHERE clauses are preserved * * @param string $fieldName * @param mixed|array $fieldValue * @param array $data */ public function updateByField($fieldName, $fieldValue, array $data) { $this->manager->postPendingQuery(new PendingQuery($this->entity, PendingQuery::TYPE_UPDATE, $this->getUpdateQuery($data)->where($this->equalsExpression($fieldName, $fieldValue)), $this->parameters)); }