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