首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Many2One字段搜索

Many2One字段搜索
EN

Stack Overflow用户
提问于 2016-06-23 08:35:33
回答 1查看 1.1K关注 0票数 2

我使用这个班级通过PHP访问odoo。几乎一切都很好。我不能仅仅通过放置引用记录的id来搜索many2one字段。我想应该有一种特殊的方式在搜索中编码many2one id。示例:使用下面的代码在product.supplierinfo中搜索product_tmpl_id,返回emtpy数组:

代码语言:javascript
复制
$rpc->searchread(array(array("product_tmpl_id","=","3673")),"product.supplierinfo");

通过id搜索记录,我得到了以下结果:

代码语言:javascript
复制
$rpc->read(array(1),"", "product.supplierinfo");
Array
(
    [0] => Array
        (
            [create_uid] => Array
                (
                    [0] => xxxxx
                    [1] => xxxxx xxxxx
                )

            [product_code] => 
            [create_date] => 2016-06-22 11:08:00
            [name] => Array
                (
                    [0] => 1438
                    [1] => Provider one
                )

            [product_uom] => Array
                (
                    [0] => 1
                    [1] => Unit(s)
                )

            [sequence] => 1
            [product_name] => 
            [__last_update] => 2016-06-22 11:42:28
            [company_id] => Array
                (
                    [0] => 1
                    [1] => Company Name
                )

            [write_uid] => Array
                (
                    [0] => xxxx
                    [1] => xxxxxx xxxxx
                )

            [delay] => 1
            [write_date] => 2016-06-22 11:42:28
            [pricelist_ids] => Array
                (
                )

            [display_name] => Provider One
            [min_qty] => 0
            [qty] => 0
            [product_tmpl_id] => Array
                (
                    [0] => 3673
                    [1] => Product Name
                )

            [id] => 1
        )

)

我应该如何编码many2one字段的id?任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-23 14:31:29

我终于找到了解决办法。正如@czoellner所指出的,问题是ID的类型是字符串,必须是整数。所以,这个代码很好用。

代码语言:javascript
复制
$rpc->searchread(array(array("product_tmpl_id","=",3673)),"product.supplierinfo");

另一方面,必须考虑product.product的id和product.template的id之间的问题,因为它们是不同的。表product.supplierinfo使用product.template的id,而不是product.product。这导致在表中搜索produc.supplierinfo是必要的,首先需要找到产品的product_tmpl_id来引用产品。因此,为了找到一个产品的所有提供者:

代码语言:javascript
复制
#search it by id
$prod_odoo = $rpc->read(array(1),"product.product",array());
#every search returns a 2 dimension array
$prod_suppliers = $rpc->searchread(array(array("product_tmpl_id","=",(int)$prod_odoo[0]["product_tmpl_id"][0])),"product.supplierinfo");

希望这能有所帮助。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37986262

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档