Odoo PHP API 和 Laradoo - 如何保存 many2many many2one 和选择字段
Odoo PHP API and Laradoo - how to save many2many many2one and selection fields
有人可以提供一个简单的例子来说明在使用 Laradoo(或 ripcord)时处理 Odoo 的 one2many、many2many 和选择字段的用法吗?
特别是如何将它们与 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
对于 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' => 'example@domain.com',
'description' => 'Just some text.',
'tag_ids' => array(array(4,1)),
]);
这意味着 1 是已知且已经存在的 crm.lead.tag 的 ID,您可以使用命令 4 link 到 m2m tag_ids 字段。这也可能是使用命令 6 表示在同一命令值上 link 多个 id:
'tag_ids' => array(array(6,0,array(1,2,3))),
如果使用命令 4,它将是:
'tag_ids' => array(array(4,1), array(4,2), array(4,3)),
有人可以提供一个简单的例子来说明在使用 Laradoo(或 ripcord)时处理 Odoo 的 one2many、many2many 和选择字段的用法吗?
特别是如何将它们与 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
对于 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' => 'example@domain.com',
'description' => 'Just some text.',
'tag_ids' => array(array(4,1)),
]);
这意味着 1 是已知且已经存在的 crm.lead.tag 的 ID,您可以使用命令 4 link 到 m2m tag_ids 字段。这也可能是使用命令 6 表示在同一命令值上 link 多个 id:
'tag_ids' => array(array(6,0,array(1,2,3))),
如果使用命令 4,它将是:
'tag_ids' => array(array(4,1), array(4,2), array(4,3)),