0

I've created a custom grid using Ui Component, In my custom table I have a product_id, So instead of showing the product_id, I like to show the product name in my grid so that I have added the below code into my collection class.

protected function _initSelect()
    {
        parent::_initSelect();
        $this->getSelect()->joinleft(
            array('cpev' => $this->getTable('catalog_product_entity_varchar')),
            'main_table.product_id = cpev.entity_id and cpev.attribute_id=84',
            array('product_name'=>'value')
        );
        $this->getSelect()->order('main_table.id desc');
        return $this;
    }

Then in my Ui component XML file, I added the product_name column as like follow

<column name="product_name">
        <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="filter" xsi:type="string">text</item>
                    <item name="sortOrder" xsi:type="number">150</item>
                    <item name="label" xsi:type="string" translate="true">Product Name</item>
                </item>
            </argument>
 </column>

Now in the grid, the product name is showing, but when I filter the product name I got the below log in exception.log file

Column not found: 1054 Unknown column 'product_name' in 'where clause', query was: SELECT COUNT(*) FROM `product_qa` AS `main_table`
 LEFT JOIN `catalog_product_entity_varchar` AS `cpev` ON main_table.product_id = cpev.entity_id and cpev.attribute_id=84 WHERE (`product_name` LIKE '%mi%')

The problem is the product_name columns is not exist in my customizable, So I want some input to accomplish the filter in my custom grid using the product name columns.

Thanks in advance for your better support.

| improve this question | | | | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.