本文整理汇总了PHP中Magento\Framework\Model\ResourceModel\Db\AbstractDb::save方法的典型用法代码示例。如果您正苦于以下问题:PHP AbstractDb::save方法的具体用法?PHP AbstractDb::save怎么用?PHP AbstractDb::save使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Magento\Framework\Model\ResourceModel\Db\AbstractDb
的用法示例。
在下文中一共展示了AbstractDb::save方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: testPrepareDataForUpdate
public function testPrepareDataForUpdate()
{
$connectionMock = $this->getMock('\\Magento\\Framework\\DB\\Adapter\\AdapterInterface', [], [], '', false);
$context = (new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this))->getObject('Magento\\Framework\\Model\\Context');
$registryMock = $this->getMock('\\Magento\\Framework\\Registry', [], [], '', false);
$resourceMock = $this->getMock('Magento\\Framework\\Model\\ResourceModel\\Db\\AbstractDb', ['_construct', 'getConnection', '__wakeup', 'getIdFieldName'], [], '', false);
$connectionInterfaceMock = $this->getMock('Magento\\Framework\\DB\\Adapter\\AdapterInterface', [], [], '', false);
$resourceMock->expects($this->any())->method('getConnection')->will($this->returnValue($connectionInterfaceMock));
$resourceCollectionMock = $this->getMockBuilder('Magento\\Framework\\Data\\Collection\\AbstractDb')->disableOriginalConstructor()->getMockForAbstractClass();
$abstractModelMock = $this->getMockForAbstractClass('Magento\\Framework\\Model\\AbstractModel', [$context, $registryMock, $resourceMock, $resourceCollectionMock]);
$data = 'tableName';
$this->_resourcesMock->expects($this->any())->method('getConnection')->will($this->returnValue($connectionMock));
$this->_resourcesMock->expects($this->any())->method('getTableName')->with($data)->will($this->returnValue('tableName'));
$mainTableReflection = new \ReflectionProperty('Magento\\Framework\\Model\\ResourceModel\\Db\\AbstractDb', '_mainTable');
$mainTableReflection->setAccessible(true);
$mainTableReflection->setValue($this->_model, 'tableName');
$idFieldNameReflection = new \ReflectionProperty('Magento\\Framework\\Model\\ResourceModel\\Db\\AbstractDb', '_idFieldName');
$idFieldNameReflection->setAccessible(true);
$idFieldNameReflection->setValue($this->_model, 'idFieldName');
$connectionMock->expects($this->any())->method('save')->with('tableName', 'idFieldName');
$connectionMock->expects($this->any())->method('quoteInto')->will($this->returnValue('idFieldName'));
$abstractModelMock->setIdFieldName('id');
$abstractModelMock->setData(['id' => 12345, 'name' => 'Test Name', 'value' => 'Test Value']);
$abstractModelMock->afterLoad();
$this->assertEquals($abstractModelMock->getData(), $abstractModelMock->getStoredData());
$newData = ['value' => 'Test Value New'];
$this->_model->expects($this->once())->method('_prepareDataForTable')->will($this->returnValue($newData));
$abstractModelMock->addData($newData);
$this->assertNotEquals($abstractModelMock->getData(), $abstractModelMock->getStoredData());
$abstractModelMock->isObjectNew(false);
$connectionMock->expects($this->once())->method('update')->with('tableName', $newData, 'idFieldName');
$this->_model->save($abstractModelMock);
}
示例2: save
/**
* {@inheritdoc}
*/
public function save(\Magento\Framework\Model\AbstractModel $object)
{
$hasDataChanges = $object->hasDataChanges();
$object->setIsOptionsSaved(false);
$result = parent::save($object);
if ($hasDataChanges && !$object->isOptionsSaved()) {
$object->saveItemOptions();
}
return $result;
}
示例3: save
/**
* {@inheritdoc}
*/
public function save(\Magento\Framework\Model\AbstractModel $object)
{
$object->setHasDataChanges(true);
return parent::save($object);
}
示例4: save
/**
* {@inheritdoc}
*/
public function save(\Magento\Framework\Model\AbstractModel $object)
{
$object->setUpdatedAt(gmdate('Y-m-d H:i:s'));
return parent::save($object);
}