Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 按'过滤;代码';使用odoo产品API_Php_Openerp_Odoo 9 - Fatal编程技术网

Php 按'过滤;代码';使用odoo产品API

Php 按'过滤;代码';使用odoo产品API,php,openerp,odoo-9,Php,Openerp,Odoo 9,我正在尝试使用odoo的PHP api按特定的产品代码进行过滤。如果我按quantity\u available>0进行过滤,它可以正常工作: $records = $models->execute_kw($db, $uid, $pass, 'product.product', 'search_read', array( array( array('qty_available', '>', 0), ), ), array( 'fields' => array

我正在尝试使用odoo的PHP api按特定的产品代码进行过滤。如果我按
quantity\u available>0进行过滤,它可以正常工作:

$records = $models->execute_kw($db, $uid, $pass, 'product.product', 'search_read', array(
  array(
    array('qty_available', '>', 0),
  ),
), array(
  'fields' => array('code', 'display_name', 'qty_available')
));
。。。但当我按代码过滤时,它返回所有结果,基本上忽略任何过滤器:

$records = $models->execute_kw($db, $uid, $pass, 'product.product', 'search_read', array(
  array(
    array('code', '=', 'T-0001'),
  ),
), array(
  'fields' => array('code', 'display_name', 'qty_available')
));

有人知道为什么会这样吗?它也可以使用整数ID,而不是字符串代码。谢谢

在模型
产品中。产品
字段是

默认情况下,这些类型的字段不可搜索

但是您可以将store标记为True,然后进行搜索


注意:在型号
产品中标记store=True既有优点,也有缺点。product
字段是正确的

默认情况下,这些类型的字段不可搜索

但是您可以将store标记为True,然后进行搜索


注意:由于Prakash Sharma的帮助,将store=True标记为有利也有弊,但事实证明,使其正常工作的实际方法是使用
产品。产品
的字段
默认代码
,而不是
代码
,幸运的是可以搜索。这可能会因其他人的设置而有所不同,但我不愿意进去更改数据库,我认为内部参考应该保持其设计的纯粹性。

感谢Prakash Sharma的帮助,但事实证明,让它工作的实际方法是使用
product.product
的字段
default\u code
,而不是
code
,幸运的是,这是可以搜索的。这可能会因其他人的设置而有所不同,但我不愿意进去更改数据库,我认为内部参考应保持其设计的纯粹性。

我明白了,谢谢你的回答。昨天是我第一次体验奥多,所以我不知道像不可转位场这样的细节。
store=True
的缺点是什么?另外,一个字段可以通过前端设置为可搜索的,还是我只能通过API访问它?store=True的缺点是什么:一旦一个计算字段被标记为store=True,它将不再计算,为了处理这个问题,您必须在compute函数中使用@api.depends,以便在depends字段的更改中调用它。我明白了,谢谢您的回答。昨天是我第一次体验奥多,所以我不知道像不可转位场这样的细节。
store=True
的缺点是什么?另外,一个字段可以通过前端设置为可搜索的,还是我只能通过API访问它?store=True的缺点是什么:一旦一个计算字段被标记为store=True,它将不再计算,为了处理这个问题,您必须在compute函数中使用@api.depends,以便在depends字段的更改中调用它。