[英]Correct syntax to write to Odoo many2many field with php API
[英]Odoo PHP API and Laradoo - how to save many2many many2one and selection fields
有人可以提供一个简单的示例,说明在使用 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 是我项目中的有效标签 ID)时,潜在客户保持未标记状态。
首先,选择字段值只是需要作为字段定义的选择值的一部分的字符串值。
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 :
'tag_ids' => array(array(6,0,array(1,2,3))),
使用命令 4 的地方将是:
'tag_ids' => array(array(4,1), array(4,2), array(4,3)),
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.