diff --git a/lib/internal/Magento/Framework/Model/ResourceModel/Db/Collection/AbstractCollection.php b/lib/internal/Magento/Framework/Model/ResourceModel/Db/Collection/AbstractCollection.php index b57755ed7eafa..a88e013f5d2fe 100644 --- a/lib/internal/Magento/Framework/Model/ResourceModel/Db/Collection/AbstractCollection.php +++ b/lib/internal/Magento/Framework/Model/ResourceModel/Db/Collection/AbstractCollection.php @@ -346,7 +346,9 @@ public function addExpressionFieldToSelect($alias, $expression, $fields) $fullExpression = str_replace('{{' . $fieldKey . '}}', $fieldItem, $fullExpression); } - $this->getSelect()->columns([$alias => $fullExpression]); + $fullExpression = new \Zend_Db_Expr($fullExpression); + $this->_fieldsToSelect[$alias] = $fullExpression; + $this->_fieldsToSelectChanged = true; return $this; } diff --git a/lib/internal/Magento/Framework/Model/Test/Unit/ResourceModel/Db/Collection/AbstractCollectionTest.php b/lib/internal/Magento/Framework/Model/Test/Unit/ResourceModel/Db/Collection/AbstractCollectionTest.php index 4f27f083509d7..0eae94dabbbe8 100644 --- a/lib/internal/Magento/Framework/Model/Test/Unit/ResourceModel/Db/Collection/AbstractCollectionTest.php +++ b/lib/internal/Magento/Framework/Model/Test/Unit/ResourceModel/Db/Collection/AbstractCollectionTest.php @@ -269,8 +269,9 @@ public function addFieldToSelectDataProvider() */ public function testAddExpressionFieldToSelect($alias, $expression, $fields, $expected) { - $this->selectMock->expects($this->once())->method('columns')->with($expected); $this->assertTrue($this->uut->addExpressionFieldToSelect($alias, $expression, $fields) instanceof Uut); + $this->assertEquals($expected, $this->uut->getFieldsToSelect()); + $this->assertTrue($this->uut->wereFieldsToSelectChanged()); } /**