首页 > 解决方案 > Codeigniter XML-RPC 连接到 Odoo 域错误

问题描述

我正在开发一个 PHP API 接口,以从我们本地网络上的 Odoo 12 API 获取数据,用于我们的 Intranet。

authenticate方法工作正常,因此连接良好。

我在search方法上有问题。无论我尝试添加什么作为最后一个参数,API 都会给我同样的错误:

AssertionError:要规范化的域必须具有“域”形式:域组件的列表或元组

这是我用于请求的 PHP 代码,使用 CodeIgniter 的 XML-RPC 库。

    $this->xmlrpc->server($this->url.$this->ep_object);
    $this->xmlrpc->method('execute_kw');

    $request = array(
        array($this->db, 'string'),
        array($this->user_id , 'int'),
        array($this->password, 'string'),
        array('res.partner', 'string'),
        array('search', 'string'),
        array(
          array(
            array(
              array('is_company', '=', true),
              array('customer', '=', true)
            )
          )
          , 'struct')   
    );
    $this->xmlrpc->request($request);

    if ( ! $this->xmlrpc->send_request())
    {
            echo $this->xmlrpc->display_error();
    }
    else
    {
            $val = $this->xmlrpc->display_response();
            var_dump($val);
    }

问题似乎出在$request数组的最后一个参数上。我试过一个空列表,一个里面Array有另一个Array,等等......总是同样的错误。上面的代码试图复制与 API 文档中相同的代码,这在该领域还没有更详细: https ://www.odoo.com/documentation/12.0/webservices/odoo.html#list-记录

据我所知,Codeigniter 库生成的编码可能有所不同,或者我遗漏了一些东西。

标签: phpcodeigniterodooxml-rpcodoo-12

解决方案


推荐阅读