/**
  * @covers \Magento\Setup\Module\DataSetup::updateTableRow
  * @expectedException \Zend_Db_Statement_Exception
  */
 public function testUpdateTableRowNameConversion()
 {
     $original = $this->_model->getTableRow('setup_module', 'module', 'core_setup', 'schema_version');
     $this->_model->updateTableRow('setup/module', 'module', 'core_setup', 'schema_version', $original);
 }
Esempio n. 2
0
 /**
  * Update Attribute Additional data
  *
  * @param int|string $entityTypeId
  * @param int|string $id
  * @param string|array $field
  * @param mixed $value
  * @return $this
  */
 private function _updateAttributeAdditionalData($entityTypeId, $id, $field, $value = null)
 {
     $additionalTable = $this->getEntityType($entityTypeId, 'additional_attribute_table');
     if (!$additionalTable) {
         return $this;
     }
     $additionalTableExists = $this->setup->getConnection()->isTableExists($this->setup->getTable($additionalTable));
     if ($additionalTable && $additionalTableExists) {
         $attributeFields = $this->setup->getConnection()->describeTable($this->setup->getTable($additionalTable));
         if (is_array($field)) {
             $bind = [];
             foreach ($field as $k => $v) {
                 if (isset($attributeFields[$k])) {
                     $bind[$k] = $this->setup->getConnection()->prepareColumnValue($attributeFields[$k], $v);
                 }
             }
             if (!$bind) {
                 return $this;
             }
             $field = $bind;
         } else {
             if (!isset($attributeFields[$field])) {
                 return $this;
             }
         }
         $this->setup->updateTableRow($this->setup->getTable($additionalTable), 'attribute_id', $this->getAttributeId($entityTypeId, $id), $field, $value);
         $attribute = $this->getAttribute($entityTypeId, $id);
         $this->updateCachedRow($field, $value, $attribute);
     }
     return $this;
 }