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 ответов

26 просмотров

Если известен 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);

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта