Может ли кто-нибудь представить простой пример использования полей O2, one2many, many2many и selection при использовании Laradoo (или ripcord)?
В частности, как их можно использовать с create () и update (). В Python кажется, что они имеют дело с использованием специальных команд кортежа, однако для документации PHP очень сложно найти такие вещи, и это было бы чрезвычайно полезно.
В иллюстративных целях в моем конкретном проекте я не смог выяснить, как связать ведущий тег CRM с лидерством в процессе создания с использованием Laradoo:
$id = $odoo->create('crm.lead', [
'type' => 'lead',
'priority' => 0, <-- what do we pass here for this selection field?
'name' => 'Example',
'contact_name' => 'John Doe',
'phone' => '555-555-5555',
'email_from' => '[email protected]',
'description' => 'Just some text.',
'tag_ids' => [1], <-- What do we pass here for this one2many field?
]);
В приведенном выше примере при попытке установить в поле выбора приоритета значение int, отличное от 0, происходит сбой, и при попытке передать массив tag_ids (1 является допустимым идентификатором тега в моем проекте), вывод остается без тега.
Прежде всего значения полей выбора — это просто строковые значения, которые должны быть частью определенных в поле значений выбора.
Значения для реляционных полей, таких как Onetomany и Many2many, управляются форматированными командами значениями, в которых вы можете прочитать:
https://github.com/odoo/odoo/blob/11.0/odoo/models.py#L3020-L3055
Для использования php api с ripcord вы можете установить значение поля tag_ids следующим образом:
$id = $odoo->create('crm.lead', [
'type' => 'lead',
'priority' => '0',
'name' => 'Example',
'contact_name' => 'John Doe',
'phone' => '555-555-5555',
'email_from' => '[email protected]',
'description' => 'Just some text.',
'tag_ids' => array(array(4,1)),
]);
Это означает, что 1 является идентификатором известного и уже существующего crm.lead.tag, который можно связать с полем tagm метра m2m с помощью команды 4. Это также можно выразить с помощью команды 6, чтобы связать несколько идентификаторов с одним и тем же значением команды. :
'tag_ids' => array(array(6,0,array(1,2,3))),
где с помощью команды 4 это будет:
'tag_ids' => array(array(4,1), array(4,2), array(4,3)),
Других решений пока нет …