如何通过PHP调用Odoo外部API实现名称前缀搜索?
修改PHP调用Odoo API实现前缀搜索的方法
Odoo外部API的搜索逻辑依赖**域(domain)**语法,要实现名称以s开头的记录搜索,只需调整域中的运算符和匹配值:
- 精确匹配的原代码片段(匹配名称为
Sanda的project.project记录):
$domain = array( array('name', '=', 'Sanda') ); // 调用API执行搜索 $records = $rpcClient->execute_kw( $db, $uid, $password, 'project.project', 'search', array($domain) );
- 修改为前缀搜索的代码:
- 若需要区分大小写(仅匹配小写
s开头的名称),使用like运算符,匹配值写s%(%是通配符,代表任意后续字符):
$domain = array( array('name', 'like', 's%') ); $records = $rpcClient->execute_kw( $db, $uid, $password, 'project.project', 'search', array($domain) );
- 若需要不区分大小写(匹配
s或S开头的名称),改用ilike运算符:
$domain = array( array('name', 'ilike', 's%') ); $records = $rpcClient->execute_kw( $db, $uid, $password, 'project.project', 'search', array($domain) );
核心规则说明
- Odoo域的标准格式为
[字段名, 运算符, 匹配值] like:区分大小写的模糊匹配,%匹配任意长度字符,_匹配单个字符ilike:不区分大小写的模糊匹配,通配符规则与like一致
内容的提问来源于stack exchange,提问作者Ben Hmida
相关产品推荐
相关产品推荐

