Я новичок в Magento 2, и у меня есть собственный модуль, который использует плагин для изменения своей коллекции продуктов на уровне модели каталога. Я создал настраиваемый атрибут с множественным выбором для продукта с опцией:
backend => '\Magento\Eav\Model\Entity\Attribute\Backend\ArrayBackend'
Он успешно создает, заполняет и сохраняет поле множественного выбора и его данные из формы редактирования продукта. Я также могу без проблем получить все значения из массива множественного выбора:
$product->getAllAttributeValues('my_custom_attribute');
Это выводит что-то вроде:
Array
(
[18] => Array
(
[0] => 1,3,4
)
[14] => Array
(
[0] =>
)
[32] => Array
(
[0] => 3,8
)
)
Итак, вот моя проблема:
Допустим, у меня есть переменная
$value = "3"
и я хочу отображать только те продукты, которые имеют это значение $ в my_custom_attribute. В приведенном выше примере будут отображаться только [18] и [32].
Есть ли способ сделать это в Magento 2 с помощью метода addAttributeToFilter ()?
Например:
$product->addAttributeToFilter('my_custom_attribute', $value);
РЕДАКТИРОВАТЬ: Есть ли способ сделать "нин" (не внутри) в массиве, чтобы, если $ value = 1, отображались только [14] и [32]? Например:
$value = 1;
$product->addAttributeToFilter('my_custom_attribute', array('nin' => $value))