當前位置: 首頁>>代碼示例>>PHP>>正文


PHP AbstractDb::addUniqueField方法代碼示例

本文整理匯總了PHP中Magento\Framework\Model\ResourceModel\Db\AbstractDb::addUniqueField方法的典型用法代碼示例。如果您正苦於以下問題:PHP AbstractDb::addUniqueField方法的具體用法?PHP AbstractDb::addUniqueField怎麽用?PHP AbstractDb::addUniqueField使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在Magento\Framework\Model\ResourceModel\Db\AbstractDb的用法示例。


在下文中一共展示了AbstractDb::addUniqueField方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的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' => 0, 'name' => 'Test Name', 'value' => 'Test Value']);
     $abstractModelMock->afterLoad();
     $this->assertEquals($abstractModelMock->getData(), $abstractModelMock->getStoredData());
     $newData = ['value' => 'Test Value New'];
     $this->_model->expects($this->atLeastOnce())->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');
     $select = $this->getMockBuilder(\Magento\Framework\DB\Select::class)->disableOriginalConstructor()->getMock();
     $select->expects($this->once())->method('from')->with('tableName')->willReturnSelf();
     $connectionMock->expects($this->once())->method('select')->willReturn($select);
     $select->expects($this->once())->method('reset')->with(\Magento\Framework\DB\Select::WHERE);
     $select->expects($this->exactly(2))->method('where')->withConsecutive(['uniqueField IS NULL'], ['idFieldName!=?', 0]);
     $this->_model->addUniqueField(['field' => 'uniqueField']);
     $this->_model->save($abstractModelMock);
 }
開發者ID:Doability,項目名稱:magento2dev,代碼行數:39,代碼來源:AbstractDbTest.php

示例2: testAddUniqueFieldArray

 public function testAddUniqueFieldArray()
 {
     $this->assertInstanceOf('\\Magento\\Framework\\Model\\ResourceModel\\Db\\AbstractDb', $this->_model->addUniqueField(['someField']));
 }
開發者ID:pradeep-wagento,項目名稱:magento2,代碼行數:4,代碼來源:AbstractDbTest.php


注:本文中的Magento\Framework\Model\ResourceModel\Db\AbstractDb::addUniqueField方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。