UMIhelp

Разработка дополнительного функционала => Разработка модулей => Тема начата: andrey от 29 Ноября 2013, 17:23:42

Название: Запись в umiObjectPropertyOptioned
Отправлено: andrey от 29 Ноября 2013, 17:23:42
Не могу понять как писать в свойство типа "составное".
Пытаюсь записать с памощью setValue(), потом делаю коммит, но ничего.

$obj_parking_place->setValue(array(507 => '№ 8'));
$obj_parking_place->commit();

507 это id эллемента справочника, '№ 8' название.

По крайней мере getValue возвращает такой массив.

Как быть?
Название: Re:Запись в umiObjectPropertyOptioned
Отправлено: e.ioffe от 29 Ноября 2013, 22:31:45
Не могу понять как писать в свойство типа "составное".
Пытаюсь записать с памощью setValue(), потом делаю коммит, но ничего.

$obj_parking_place->setValue(array(507 => '№ 8'));
$obj_parking_place->commit();

507 это id эллемента справочника, '№ 8' название.

По крайней мере getValue возвращает такой массив.

Как быть?

Попробуйте просто
$obj_parking_place->setValue507);
Название: Re:Запись в umiObjectPropertyOptioned
Отправлено: andrey от 02 Декабря 2013, 18:07:07
Разобрался, надо так:
$obj_parking_place->setValue( array(
'rel' => 507,
'float' => 0,
'int' => 1
));
Название: Re:Запись в umiObjectPropertyOptioned
Отправлено: ilyar от 14 Апреля 2014, 21:30:16
Если надо использовать составное поле не стандартно, то можно еще так:

<?php
$page->setValue('myField', array(
  'int' => 1, // bigint(20)
  'varchar' => null, // varchar(255)
  'rel' => null, // int(10)
  'tree' => null, // int(10)
  'float' => 0 // double
));



Важно  у массива обязательно должно быть минимум два элемента с не нулевыми значениями.

Может на эту тему будет полезный материал: