有人可以提供使用Laradoo(或ripcord)时处理Odoo的one2many,many2many和selection字段的用法的简单示例吗?
特别是如何将它们与create()和update()一起使用。在Python中,似乎使用特殊的元组命令来处理这些问题,但是对于这些类型的事情,很难找到PHP文档,这将非常有帮助。
出于说明目的,在我的特定项目中,我无法弄清楚如何在使用Laradoo的创建过程中将CRM线索标签与线索相关联:
$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' => 'example@domain.com',
'description' => 'Just some text.',
'tag_ids' => [1], <-- What do we pass here for this one2many field?
]);
在上面的示例中,当尝试将优先级选择字段设置为非0的int失败,并且尝试传递tag_ids数组(我的项目中1是有效的tag id)时,线索仍然未加标签。
答案 0 :(得分:1)
首先,选择字段值只是需要作为字段定义的选择值一部分的字符串值。
诸如Onetomany和Many2many之类的关系字段的值由您可以在以下位置读取的命令格式的值确定:
https://github.com/odoo/odoo/blob/11.0/odoo/models.py#L3020-L3055
对于与ripcord一起使用的php API,您可以将tag_ids字段值设置为:
$id = $odoo->create('crm.lead', [
'type' => 'lead',
'priority' => '0',
'name' => 'Example',
'contact_name' => 'John Doe',
'phone' => '555-555-5555',
'email_from' => 'example@domain.com',
'description' => 'Just some text.',
'tag_ids' => array(array(4,1)),
]);
此翻译为1是已知和已经存在的crm.lead.tag的ID,您可以使用命令4链接到m2m tag_ids字段。也可以使用命令6来表示链接到ID上的多个ID。相同的命令值:
'tag_ids' => array(array(6,0,array(1,2,3))),
在使用命令4的地方将是:
'tag_ids' => array(array(4,1), array(4,2), array(4,3)),