Přejít na obsah
Menu
You need to be registered to interact with the community.
This question has been flagged
1 Odpovědět
7416 Zobrazení

I am trying to follow example here: https://github.com/Tawasta/odoo-xml-rpc-example/blob/10.0/php-ripcord.md

Odoo is running under ubuntu 18.04 desktop linux and my host is win'7, here i have xampp portable.

i can get uid ( print("<p>Your current user id is '${uid}'</p>"); ) but when going further it is showing error

Warning: Use of undefined constant name - assumed 'name' (this will throw an Error in a future version of PHP) in D:\xampp\htdocs\mytest\test4.php on line 54


Warning: Use of undefined constant name - assumed 'name' (this will throw an Error in a future version of PHP) in D:\xampp\htdocs\mytest\test4.php on line 54

Warning: Illegal string offset 'name' in D:\xampp\htdocs\mytest\test4.php on line 54

the code file .php contains:

<?php
// Login information
$url = 'http://192.168.18.71:8069';
$url_auth = $url . '/xmlrpc/2/common';
$url_exec = $url . '/xmlrpc/2/object';
$db = 'odb14';
$username = 'odoouser@myhost.com';
$password = 'admin';
// Ripcord can be cloned from https://github.com/poef/ripcord
require_once('ripcord\ripcord.php');
// Login
$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);
$models                 // The (Ripcord) client
    ->execute_kw(       // Execute command
    'table.reference',  // Referenced model, e.g. 'res.partner' or 'account.invoice'
    'search',           // Search method of the referenced model
    array()             // Search domain
);
$customer_ids = $models->execute_kw(
    $db, // DB name
    $uid, // User id, user login name won't work here
    $password, // User password
    'res.partner', // Model name
    'search', // Function name
    array( // Search domain
        array( // Search domain conditions
            array('active', '=', true)) // Query condition
        )
 );

$customers = $models->execute_kw($db, $uid, $password, 'res.partner',
    'read',  // Function name
    array($customer_ids), // An array of record ids
    array('fields'=>array('name')) // Array of wanted fields
);
print("<p><strong>Found customers:</strong><br/>");
foreach ($customers as &$customer){
    print("{$customer[name]}<br/>");
}
print("</p>");
?>

is it because of my odoo version where it requires different handling or anything else? please help.

regards


Avatar
Zrušit
Autor

now it is showing name field data but another error with every name: Warning: Use of undefined constant name - assumed 'name' (this will throw an Error in a future version of PHP) in D:\xampp\htdocs\mytest\test4.php on line 53

Autor Nejlepší odpověď

 final code which works fine, retrieve data ('name') from res_partner. just to inform, i have Odoo 14 installed on a ubuntu 18.04 desktop, sets its network as Bridge and used Odo's default port. have XAMPP portable on my Win'7 host machine, created a project folder in D:\xampp\htdocs\mytest and cloned "ripcord" library with gitbash: git clone  https://github.com/poef/ripcord

created .php file (below) and test it in Chrome, it is showing name column data from res_partner... as expected.

<?php
// Login information
$url = 'http://192.168.18.71:8069';
$url_auth = $url . '/xmlrpc/2/common';
$url_exec = $url . '/xmlrpc/2/object';
$db = 'odb14';
$username = 'odoouser@myhost.com';
$password = 'admin';
// Ripcord can be cloned from https://github.com/poef/ripcord
require_once('ripcord\ripcord.php');
// Login
$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);
$models                 // The (Ripcord) client
    ->execute_kw(       // Execute command
    'table.reference',  // Referenced model, e.g. 'res.partner' or 'account.invoice'
    'search',           // Search method of the referenced model
    array()             // Search domain
);
$customer_ids = $models->execute_kw(
    $db, // DB name
    $uid, // User id, user login name won't work here
    $password, // User password
    'res.partner', // Model name
    'search', // Function name
    array( // Search domain
        array( // Search domain conditions
            array('active', '=', true))
        )
 );
$customers = $models->execute_kw($db, $uid, $password, 'res.partner',
    'read',  // Function name
    array($customer_ids), // An array of record ids
    array('fields'=>array('name')) // Array of wanted fields
);
print("<p><strong>Found customers:</strong><br/>");
foreach ($customers as $customer){
    print("{$customer['name']}<br/>");
}
print("</p>");
?>


Avatar
Zrušit
Related Posts Odpovědi Zobrazení Aktivita
0
bře 18
4248
1
bře 15
7583
2
bře 15
10439
1
led 23
5074
1
kvě 18
5860