You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PHP中通过外部API按work_location_id筛选hr.employee

如何通过PHP调用Odoo外部API按work_location_id筛选hr.employee?

正确实现代码

针对work_location_id这种返回格式为[ID, 名称]的关联字段,Odoo外部API筛选时直接使用字段名匹配ID即可,注意参数结构和ID类型:

$id = (int)$_GET['id']; // 转换为整数,避免字符串类型匹配失败

// 执行search_read查询
$employees = $models->execute_kw(
    $db,
    $uid,
    $password,
    'hr.employee',
    'search_read',
    array(
        // 筛选条件domain:二维数组结构
        array(array('work_location_id', '=', $id)),
        // 可选:指定返回字段,优化数据返回
        array('fields' => array('name', 'work_location_id', 'job_id'))
    )
);

无效写法的原因及排查点

  • 你尝试的work_location_id[0]写法错误:Odoo的domain筛选针对的是字段在数据库中的存储值(即关联ID),而非返回结果的数组结构,因此不能用数组下标来筛选。
  • 若直接用work_location_id筛选无效,优先排查:
    • $id是否为整数:$_GET['id']默认是字符串,需强制转换为整数类型。
    • domain结构是否正确:必须是二维数组,外层数组包裹筛选条件组,内层是单个条件数组。
    • API用户权限:确认当前用户拥有hr.employee模型的读取权限,以及work_location_id字段的访问权限。
    • 字段名拼写:检查Odoo模型中该字段的准确名称是否为work_location_id,避免拼写错误。

内容的提问来源于stack exchange,提问作者tropapetz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 12:30:03