Exemplo n.º 1
0
 /**
  * Process role before saving
  *
  * @param \Magento\Framework\Model\AbstractModel $role
  * @return $this
  */
 protected function _beforeSave(\Magento\Framework\Model\AbstractModel $role)
 {
     if (!$role->getId()) {
         $role->setCreated($this->dateTime->formatDate(true));
     }
     $role->setModified($this->dateTime->formatDate(true));
     if ($role->getId() == '') {
         if ($role->getIdFieldName()) {
             $role->unsetData($role->getIdFieldName());
         } else {
             $role->unsetData('id');
         }
     }
     if (!$role->getTreeLevel()) {
         if ($role->getPid() > 0) {
             $select = $this->getConnection()->select()->from($this->getMainTable(), ['tree_level'])->where("{$this->getIdFieldName()} = :pid");
             $binds = ['pid' => (int) $role->getPid()];
             $treeLevel = $this->getConnection()->fetchOne($select, $binds);
         } else {
             $treeLevel = 0;
         }
         $role->setTreeLevel($treeLevel + 1);
     }
     if ($role->getName()) {
         $role->setRoleName($role->getName());
     }
     return $this;
 }
Exemplo n.º 2
0
 /**
  * Restore old attribute value
  *
  * @param \Magento\Framework\Model\AbstractModel $model
  * @param mixed $oldAttrValue
  * @return void
  */
 protected function _restoreOldAttrValue(\Magento\Framework\Model\AbstractModel $model, $oldAttrValue)
 {
     $attrCode = $this->getAttribute();
     if ($oldAttrValue === null) {
         $model->unsetData($attrCode);
     } else {
         $model->setData($attrCode, $oldAttrValue);
     }
 }
Exemplo n.º 3
0
 /**
  * Tests \Magento\Framework\Object->hasDataChanges()
  */
 public function testHasDataChanges()
 {
     $this->assertFalse($this->model->hasDataChanges());
     $this->model->setData('key', 'value');
     $this->assertTrue($this->model->hasDataChanges(), 'Data changed');
     $this->model->setDataChanges(false);
     $this->model->setData('key', 'value');
     $this->assertFalse($this->model->hasDataChanges(), 'Data not changed');
     $this->model->setData(['key' => 'value']);
     $this->assertFalse($this->model->hasDataChanges(), 'Data not changed (array)');
     $this->model->unsetData();
     $this->assertTrue($this->model->hasDataChanges(), 'Unset data');
 }
 /**
  * {@inheritdoc}
  *
  * Unset customAttributesChanged flag
  */
 public function unsetData($key = null)
 {
     if (is_string($key) && isset($this->_data[self::CUSTOM_ATTRIBUTES][$key])) {
         unset($this->_data[self::CUSTOM_ATTRIBUTES][$key]);
     }
     return parent::unsetData($key);
 }
Exemplo n.º 5
0
 /**
  * Unset data from the object.
  *
  * The $key can be a string only. Array will be ignored.
  *
  * $isChanged will specify if the object needs to be saved after an update.
  *
  * @param string $key
  * @return $this
  */
 public function unsetData($key = null)
 {
     if (!is_null($key) && $this->isLockedAttribute($key) || $this->isReadonly()) {
         return $this;
     }
     return parent::unsetData($key);
 }