|
|
|
@ -749,22 +749,22 @@ class ActiveRecord extends Model
|
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
$db = static::getDb(); |
|
|
|
|
$transaction = $this->isTransactional(self::OP_INSERT) && $db->getTransaction() === null ? $db->beginTransaction() : null; |
|
|
|
|
if ($this->isTransactional(self::OP_INSERT) && $db->getTransaction() === null) { |
|
|
|
|
$transaction = $db->beginTransaction(); |
|
|
|
|
try { |
|
|
|
|
$result = $this->insertInternal($attributes); |
|
|
|
|
if ($transaction !== null) { |
|
|
|
|
if ($result === false) { |
|
|
|
|
$transaction->rollback(); |
|
|
|
|
} else { |
|
|
|
|
$transaction->commit(); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} catch (\Exception $e) { |
|
|
|
|
if ($transaction !== null) { |
|
|
|
|
$transaction->rollback(); |
|
|
|
|
} |
|
|
|
|
throw $e; |
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
$result = $this->insertInternal($attributes); |
|
|
|
|
} |
|
|
|
|
return $result; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -859,22 +859,22 @@ class ActiveRecord extends Model
|
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
$db = static::getDb(); |
|
|
|
|
$transaction = $this->isTransactional(self::OP_UPDATE) && $db->getTransaction() === null ? $db->beginTransaction() : null; |
|
|
|
|
if ($this->isTransactional(self::OP_UPDATE) && $db->getTransaction() === null) { |
|
|
|
|
$transaction = $db->beginTransaction(); |
|
|
|
|
try { |
|
|
|
|
$result = $this->updateInternal($attributes); |
|
|
|
|
if ($transaction !== null) { |
|
|
|
|
if ($result === false) { |
|
|
|
|
$transaction->rollback(); |
|
|
|
|
} else { |
|
|
|
|
$transaction->commit(); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} catch (\Exception $e) { |
|
|
|
|
if ($transaction !== null) { |
|
|
|
|
$transaction->rollback(); |
|
|
|
|
} |
|
|
|
|
throw $e; |
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
$result = $this->updateInternal($attributes); |
|
|
|
|
} |
|
|
|
|
return $result; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -1010,6 +1010,16 @@ class ActiveRecord extends Model
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Sets the value indicating whether the record is new. |
|
|
|
|
* @param boolean $value whether the record is new and should be inserted when calling [[save()]]. |
|
|
|
|
* @see getIsNewRecord |
|
|
|
|
*/ |
|
|
|
|
public function setIsNewRecord($value) |
|
|
|
|
{ |
|
|
|
|
$this->_oldAttributes = $value ? null : $this->_attributes; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Initializes the object. |
|
|
|
|
* This method is called at the end of the constructor. |
|
|
|
|
* The default implementation will trigger an [[EVENT_INIT]] event. |
|
|
|
@ -1034,16 +1044,6 @@ class ActiveRecord extends Model
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Sets the value indicating whether the record is new. |
|
|
|
|
* @param boolean $value whether the record is new and should be inserted when calling [[save()]]. |
|
|
|
|
* @see getIsNewRecord |
|
|
|
|
*/ |
|
|
|
|
public function setIsNewRecord($value) |
|
|
|
|
{ |
|
|
|
|
$this->_oldAttributes = $value ? null : $this->_attributes; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* This method is called at the beginning of inserting or updating a record. |
|
|
|
|
* The default implementation will trigger an [[EVENT_BEFORE_INSERT]] event when `$insert` is true, |
|
|
|
|
* or an [[EVENT_BEFORE_UPDATE]] event if `$insert` is false. |
|
|
|
|