Как получить значение из типа many2one, используя переполнение стека

Я хочу получить данные партнера, которые имеют информацию id, name, а также salesperson_id где ‘salesperson_id’ — это тип many2one (содержит идентификатор и имя). Вот мой код:

    <?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

РЕШИТЬ !!

2

Решение

Я не знаю, хотите ли вы распечатать удостоверение личности или имя продавца. Но проблема с вашим кодом, генерирующим 500 Ошибка сервера, — это ошибка IndexError. Когда вы делаете $customers[salesperson_id][1], он потерпит неудачу на первом, потому что у пользователя нет продавца. таким образом $customers[salesperson_id] это не массив, а логическое значение, и при попытке получить доступ к любому его индексу возникнет ошибка.

Я не очень хорошо разбираюсь в PHP, поэтому я просто укажу на ответ:

  • $customers[salesperson_id][0] это идентификатор продавца, $customers[salesperson_id][1] это его имя.
  • если у клиента нет продавца, $customers[salesperson_id] буду иметь false как ценность.

Итак, решение:

  • Проверить, если $customers[salesperson_id] не является false
  • Распечатать $customers[salesperson_id][0] или же $customers[salesperson_id][1] если $customers[salesperson_id] не является false
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]