diff --git a/lib/internal/Magento/Framework/View/Element/UiComponent/DataProvider/FulltextFilter.php b/lib/internal/Magento/Framework/View/Element/UiComponent/DataProvider/FulltextFilter.php index f53fbf5d1f4725ffda7c8ac27e8aa300d84362a0..94ec24f1c52e55d3939b5df9b52920b8b2f32e46 100644 --- a/lib/internal/Magento/Framework/View/Element/UiComponent/DataProvider/FulltextFilter.php +++ b/lib/internal/Magento/Framework/View/Element/UiComponent/DataProvider/FulltextFilter.php @@ -33,6 +33,35 @@ class FulltextFilter implements FilterApplierInterface return []; } + /** + * Add table alias to columns + * + * @param array $columns + * @param DbCollection $collection + * @param string $indexTable + * @return array + */ + protected function addTableAliasToColumns(array $columns, DbCollection $collection, $indexTable) + { + $alias = ''; + foreach ($collection->getSelect()->getPart('from') as $tableAlias => $data) { + if ($indexTable == $data['tableName']) { + $alias = $tableAlias; + break; + } + } + if ($alias) { + $columns = array_map( + function ($column) use ($alias) { + return '`' . $alias . '`.' . $column; + }, + $columns + ); + } + + return $columns; + } + /** * Apply fulltext filters * @@ -46,6 +75,7 @@ class FulltextFilter implements FilterApplierInterface if (!$columns) { return; } + $columns = $this->addTableAliasToColumns($columns, $collection, $collection->getMainTable()); $collection->getSelect() ->where( 'MATCH(' . implode(',', $columns) . ') AGAINST(?)',