连接PHRETS中的多个资源

时间:2016-05-11 11:27:44

标签: rets phrets

我必须使用 Rets服务器从多个资源中检索数据。有没有办法这样做?

例如, 我有资源和类,如:

  
      
  1. 属性(资源),列表(类)
  2.   
  3. 媒体(资源),媒体(课程)
  4.   

应该从第一个数据中提取一些数据,从第二个数据中提取一些数据。

我正在使用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 个答案:

答案 0 :(得分:0)

从第一个类中获取记录,然后使用第二个类依赖的id从第二个类中获取记录。媒体类总是依赖于属性类,因此它将具有一些与属性类的主id相对应的id(通常是列表的mls#)。如果没有看到您的RETS服务器的元数据,我将无法告诉您需要从中提取的字段的名称。此外,你的版本很可能是1.7.2,AFAIK没有人真正使用1.5了。

答案 1 :(得分:0)

您可以使用类名循环来获取。

$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);
}