Как объединить коллекцию продуктов magento 2 в пользовательскую таблицу?


У меня есть пользовательская таблица user_product_table с полем sku (это поле присоединяется к коллекции продуктов) и user. Как я могу объединить эту таблицу с коллекцией продуктов, чтобы мне не нужно было зацикливать свою пользовательскую коллекцию, чтобы получить продукт в каждой строке.

Мой $userCollection:

 $userCollection = $this->_userProductFactory->create()
        ->getCollection()
        ->addFieldToFilter('user', 2);

Моя коллекция товаров:

$productColelction = $this->_productCollectionFactory->create()
        ->addAttributeToSelect(array('name','image','short_description','sku'))

Я хотел бы иметь окончательную коллекцию как моих пользовательских полей таблицы, так и выбранных атрибутов продукта.

Author: Teja Bhagavan Kollepara, 2016-12-06

1 answers

Мы можем использовать соединение следующим образом:

            $joinConditions = 'u.sku = e.sku';

            $productColelction->getSelect()->join(
                ['u' => $productColelction->getTable('user_product_table')],
                $joinConditions,
                []
            );

Несколько условий:

        $joinConditions[] = "u.sku = e.sku";

        $joinConditions[] = "e.type_id= 'simple' ";

        $joinConditions = implode(
            ' AND ', $joinConditions
        );
 13
Author: Khoa TruongDinh, 2017-06-08 05:15:21