Open vodolgiy opened 4 years ago
Значание для объекта PropertyValueCollection заполняются только при вызове через объект PropertyItem. Заполнение завичит от того, как был получен объект PropertyItem. Из объекта товара/офера, из категории или из компонента FilterPanel. Метод sort не делает выборку из БД. Он сортирует текущую коллекцию. Т.к. она пуста, то и результат пуст.
Значание для объекта PropertyValueCollection заполняются только при вызове через объект PropertyItem. Заполнение завичит от того, как был получен объект PropertyItem. Из объекта товара/офера, из категории или из компонента FilterPanel. Метод sort не делает выборку из БД. Он сортирует текущую коллекцию. Т.к. она пуста, то и результат пуст.
Спасибо Вам за ответ, прежде всего, но у меня все еще есть трудности :) Обрисую задачу: мне нужно получить список значений свойства, привязанного к категории через набор. На данном этапе свойство приявязано к товарным предложениям в категории. Суть Вашей мысли я примерно уловил (хочется отметить, что отдельная система кэширования - круто, и качество кода на высоте), пробовал получать объект CategoryItem, у него есть свойство _offer_propertylist, которое у меня прекрасно возвращает массив со свойствами и параметрами фильтра, и есть (в документации) свойство _offerproperty, которое должно возвращать коллекцию, на сколько я понял, но не возвращает ничего. Пробовал так же через свойство _propertyset, но не разобрался, как дотянуться до параметров свойств. Буду благодарен за помощь.
Вы имеете ввиду, что вам нужно получить свойства и их значения для вывода панели фильтрации, используя объект категории?
Нет, в своём компоненте мне нужно получить список значений свойства у категории по ID, если это возможно. Пока вышел таким образом, без кэша:
$categoryActions = \Lovata\Shopaholic\Models\Category::find(2)
->property_set
->first()
->offer_property
->where('code', 'actions')
->first()
->property_value;
@vodolgiy, рекомендую вам также присоединиться к чату нашего сообщества в Telegram - https://t.me/oc_Shopaholic_chat. Участники активно и охотно помогают вникать в нюансы Shopaholic.
О, здорово, сейчас присоединюсь, спасибо ;)
Поробуйте у объекта PropertyItem вызывать метод setCategory() передавая в него CategoryItem. После этого получать из ProeprtyItem объект proeprty_value
Без передачи модели (setModel) не работает, а с моделью - возвращает только выбранные значения, а не список значений
Например,
Lovata\PropertiesShopaholic\Classes\Collection\PropertyValueCollection::make()->sort()
не возвращает ничего. Есть свойство, у него есть значения. Тут тоже пусто:Lovata\PropertiesShopaholic\Classes\Collection\PropertyCollection::make()->first()->property_value