【发布时间】:2018-01-24 01:34:54
【问题描述】:
我想获取包含id、name 和salesperson_id 信息的合作伙伴数据,其中“salesperson_id”是 many2one 类型(包含 id 和名称)。这是我的代码:
<?php
// Login information
$url = 'localhost';
$url_auth = $url . '/xmlrp/common';
$url_exec = $url . '/xmlrpc/object';
$db = 'testing';
$username = 'odoo';
$password = 'odoo';
// Ripcord can be cloned from https://github.com/poef/ripcord
require_once('ripcord/ripcord.php');
// Login
$common = ripcord::client("$url/xmlrpc/common");
//$common = ripcord::client($url_auth);
$uid = $common->authenticate($db, $username, $password, array());
//print("<p>Your current user id is '${uid}'</p>");
$models = ripcord::client($url_exec);
$customer = $models->execute_kw(
$db,
$uid,
$password,
'res.partner',
'search_read',
array( // Search domain
array(
array('is_company', '=', true), // Query condition
array('customer', '=', true)) // Query condition
),
array('fields'=> array('name', 'salesperson_id'))
);
print("<p><strong>Found customers:</strong><br/>");
foreach ($customer as $customers){
print("${customers[id]}
${customers[name]}
{$customers[salesperson_id][0]}
<br/>");
}
print("</p>");
?>
它会显示:
Found customers:
1234 CHLOE 12
1235 DRY MART 13
1236 SEEYOU 14
1237 ED. COMP 15
解决了!!
【问题讨论】:
-
您的
${customers[salesperson_id]}正在返回一个数组,而它应该返回一个整数。customers[salesperson_id]是什么样的?我猜你可以使用${customers[salesperson_id][1]}访问 ID。 -
@ObsidianAge,当我将其更改为
${customers[salesperson_id][1]}时,页面出现错误"This page isn’t working localhost is currently unable to handle this request. HTTP ERROR 500" -
模型 res_partner 没有名为 salesperson_id 的字段。但是您可以从 sale_order 中获取它作为字段 user_id 应该是 salesperson_id
-
PHP 上没有调试工具可以让您准确地看到
$customers[salesperson_id]的样子吗?然后确切地知道要打印什么? -
@Burmesepythis,在我的 sale.order 模型中有 salesperson_id 类型为 many2field。
标签: php arrays openerp xml-rpc many-to-one