208 похожих чатов

Подскажите как устанавливать свойства типа список через D7? STATUS - обязательное

поле, выбор из 2х вариантов. XML_ID 1 и 2. Что бы не передавал (id, xml_id, текстовое значение) не сохраняет нужный выбор. В админке просто неустановленное значение (это при том, что оно обязательное).

Iblock::wakeUp($Id)->getEntityDataClass();
ElementConstructorTable::add([
'CODE' => uniqid(more_entropy: true),
'STATUS' => 2,

11 ответов

14 просмотров

Если известен id, то через метод update. Если нет, то сначала получить элемент из таблицы, у полученого объекта orm поменять нужное свойство через неименованный сеттер set() или именнованный setStatus(), потом вызвать метод save, или создать новый объект через createObject(), если элемента в базе нет, ну а дальше через метод save(), это я уже описал. Ну и доку читайте, там это есть и описано

Антон (code-pilots)- Автор вопроса
Николай
Если известен id, то через метод update. Если нет,...

Я создаю элемент, еще еще нет в таблице.

Антон (code-pilots)- Автор вопроса
Николай
Если известен id, то через метод update. Если нет,...

Через создание и редактирование это понятно, что можно. Меня как раз метод ORM ::add интересовал. Проверять свойство он проверяет, но в БД не сохраняет. Видимо недопилили его.

Антон (code-pilots)
Через создание и редактирование это понятно, что м...

Есть хак периодически решающий похожие проблемы, в настройках ИБ перенесите хранение св-в в отдельную таблицу. Может поможет в вашем случае

Станислав Задирака
screenshot Есть хак периодически решающий похожие проблемы, в...

это вообще правильно хранить каждый инфоблок в отдельной таблице.

Антон (code-pilots)- Автор вопроса
Станислав Задирака
screenshot Есть хак периодически решающий похожие проблемы, в...

Не прокатило, ну ладно, есть же старинный рабочий CIBlockElement. D7 уже столько лет пилят, все никак не допилят, либо очень многословно получается.

Антон (code-pilots)
Не прокатило, ну ладно, есть же старинный рабочий ...

Вообще d7 прост как калаш и если вы передали значение правильно назвав код - он должен его записать. Проверьте название поля в таблице.

Антон (code-pilots)
Не прокатило, ну ладно, есть же старинный рабочий ...

Всё на D7 работает отлично, только объектный ORM используем. Создаёте объект (createObject) Устанавливаете значение ($element->setStatus($statusId) Записываете данные ($element->save())

Антон (code-pilots)- Автор вопроса
Антон (code-pilots)
Через создание и редактирование это понятно, что м...

Ну если уж делать через ORM, то сначала orm-объект создаем, наполняем его данными и вызываем метод save(), он отвечает за создание или изменение существующих элементов или коллекций orm-объектов, он сам решает, что ему надо сделать с orm-объектом. Ну на счет add он должен работать, потому что save() внутри себя дергает add() или update()

Антон (code-pilots)- Автор вопроса
Николай
Ну если уж делать через ORM, то сначала orm-объект...

я нашел почему add не работает. Там берут только скалярный значения. А свойства это FieldTypeMask::REFERENCE \Bitrix\Main\ORM\Data\DataManager::add:892 $fields = $object->collectValues(Values::CURRENT, FieldTypeMask::SCALAR);

Похожие вопросы

Обсуждают сегодня

Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
70
Добрый день, не подскажите, если в OC-V3 поменять страндартную директорию /storage/ на /storage2/ - не будет сильно много проблем ?
Max Dubovsky
32
Хотел бы спросить у знающих, правильную ли я выбрал книгу для начала изучения ассемблера Юрова В.И ? Или есть более лучшие книги для начала обучения?
Botsman
25
Книга Юрова В.И пойдёт для обучения?
Botsman
24
Люди добрые, помогите с идеями, потому что свои закончились. У клиента падает софтина в момент инициализации модуля OtlEventMonitor на RegisterWindowMessage('Gp/OtlTaskEvents/...
Михаил Усков
7
$params = [ 'formid' => 'feedbackForm', 'formTpl' => '@CODE: <form class="form-validate" data-id="ajax_form"> <fieldset class="margin-bottom-md"> ...
Pathologic
1
> Примечательно, что новый владелец удаляет из GitHub любые жалобы, указывающие на подозрительную активность или смену владельца, и, видимо, рассчитывает на то, что пользовате...
Alex Sherbakov
2
GridView fully ignored first parent(SizedBox), and take width from second parent(Container). How can I constrain GridView by first parent? Widget build(BuildContext context) {...
Hamster
1
'frakturBold' => ['𝖆', '𝖇', '𝖈', '𝖉', '𝖊', '𝖋', '𝖌', '𝖍', '𝖎', '𝖏', '𝖐', '𝖑', '𝖒', '𝖓', '𝖔', '𝖕', '𝖖', '𝖗', '𝖘', '𝖙', '𝖚', '𝖛', '𝖜', '𝖝', '𝖞', '𝖟', '𝕬', '𝕭', '𝕮', '𝕯'...
Roma
4
Hey there Which is the best Linux destro for developers (coding)? To my research on reddit, they said Linux mint is good for mid level spec and Ubuntu for high Lev hardwar...
Wiz 🪄
11
Карта сайта