Подключение к нескольким ресурсам в PHRETS

Я должен получить данные из нескольких ресурсов с помощью сервера Rets. Есть ли способ сделать это?

Например, у меня есть ресурсы и классы, такие как:

  1. Свойство (Ресурс), Листинг (Класс)
  2. Медиа (Ресурс), Медиа (Класс)

Некоторые данные должны быть получены из первого и немного со второго.

Я использую Phrets для получения данных с сервера Rets.

Я использую исходный код:

<?php

date_default_timezone_set('America/New_York');
require_once("vendor/autoload.php");
$log = new \Monolog\Logger('PHRETS');
$log->pushHandler(new \Monolog\Handler\StreamHandler('php://stdout', \Monolog\Logger::DEBUG));


$config = new \PHRETS\Configuration;
$config->setLoginUrl('Url to connect with')
    ->setUsername('Username to login')
    ->setPassword('Password to login');
     ->setRetsVersion('1.5')

$rets = new \PHRETS\Session($config);
$rets->setLogger($log);

$connect = $rets->Login();



$resource     = 'Property';
$class        = 'Listing';
$query        = "(Acres=0+)";

$options      = array(
'Count'         => 1,
'Format'        => 'COMPACT-DECODED',
'Limit'         => 50,
'StandardNames' => 0,
     'Select'=>'Acres,City,ClosePrice,BathsFull,BathsHalf,PhotoCount,VirtualTourLink'
);
$results = $rets->Search($resource,$class,$query,$options);
       foreach($results as $record){
echo "<table>";
    echo "<tr>";
          echo "<td>".$record['Acres']."</td>&nbsp";
          echo "<td>".$record['City']."</td>";
          echo "<td>".$record['ClosePrice']."</td>";
          echo "<td>".$record['BathsFull']."</td>";
          echo "<td>".$record['BathsHalf']."</td>";

         echo "<td>".$record['VirtualTourLink']."</td>";

    echo "</tr>";
echo "</table>";
}

?>

Заранее спасибо!

2 ответа

Вы можете получить с помощью цикла имени класса.

$resource     = 'Property';
$classes        = array('Listing','Media');
$query        = "(Acres=0+)";

$options      = array(
    'Count'         => 1,
    'Format'        => 'COMPACT-DECODED',
    'Limit'         => 50,
    'StandardNames' => 0,
    'Select'=>'Acres,City,ClosePrice,BathsFull,BathsHalf,PhotoCount,VirtualTourLink'
);


foreach($classes as $class){
    $results[$class] = $rets->Search($resource,$class,$query,$options);
}

Извлеките свои записи из первого класса, а затем извлеките свои записи из второго класса, используя зависимый идентификатор второго класса. Классы мультимедиа всегда зависят от классов свойств, поэтому у них будет некоторый идентификатор, который соответствует основному идентификатору класса свойства (обычно это mls # в листинге). Не видя метаданных вашего RETS-сервера, я не смогу сообщить вам имена полей, из которых нужно извлечь. Кроме того, ваша версия более чем вероятно 1.7.2, AFAIK никто на самом деле не использует 1.5 больше.

Другие вопросы по тегам