带有 PHRETS 设置的 RETS IDX 未返回任何结果
RETS IDX with PHRETS Setup Returning No Results
我正在尝试学习如何使用 PHRETS 设置与 MIBOR IDX 服务器的连接,但遇到了困难。我有这个非常基本的搜索查询,只是想在开始尝试过滤之前获取所有结果,但我的搜索返回 0 个结果!我认为可能是 MIBOR 需要在搜索中传递一些字段,但我不知道如何找出可能是哪些字段...非常感谢任何帮助!
您可以下载我的元数据here
这是我的代码:
<?php
date_default_timezone_set('America/New_York');
require_once("vendor/autoload.php");
$rets_login_url = 'http://matrixrets.miborblc.com/rets/Login.ashx';
$rets_username = 'xxxxxxx';
$rets_password = 'xxxxxxx';
// CONNECT TO IDX
$config = new \PHRETS\Configuration;
$config->setLoginUrl($rets_login_url)
->setUsername($rets_username)
->setPassword($rets_password)
->setRetsVersion('1.7.2');
$rets = new \PHRETS\Session($config);
$connect = $rets->Login();
$system = $rets->GetSystemMetadata();
// SEARCH RECORDS
$results = $rets->Search('Property', 'Listing');
var_dump($results);
看看开源http://retsmd.com。
登录后,您可以 select 一种资源类型,并查看所有可用的键及其系统元数据的示例。该应用程序本身也使用 PHRETS 库,因此如果您需要查看有关他们如何获取数据的示例代码,您可以查看他们的存储库。
很难告诉您结果集有什么问题,因为没有每个提要都必须遵守的命名约定或字段要求(尽管这很愚蠢)。而且您绝对不应该传递这些登录记录。因此,您最终可能不得不结合使用 RETSmd 并联系各自的 Feed 管理员。
我只是想让大家知道我已经解决了这个问题,并分享我的解决方案,以防有人遇到类似问题。正如 Shultzie 解释的那样,主要问题是 RETS 没有命名约定。事实证明,我需要包含一个带有日期变量的查询,否则 IDX 会得到 return 0 个结果(我想某种错误处理约定也将是对 RETS IDX 的一个很好的补充)。无论如何,我将搜索更新为以下内容,一切都开始工作了:
$results = $rets->Search(
'Property',
'Listing',
"(MatrixModifiedDT=1980-01-01T00:00:00+)",
["Limit"=>1]
);
添加修改日期主要只是我的猜测,但如果您遇到类似问题并且还没有尝试过,我建议您找到系统名称并将修改日期添加到您的查询中.
我正在尝试学习如何使用 PHRETS 设置与 MIBOR IDX 服务器的连接,但遇到了困难。我有这个非常基本的搜索查询,只是想在开始尝试过滤之前获取所有结果,但我的搜索返回 0 个结果!我认为可能是 MIBOR 需要在搜索中传递一些字段,但我不知道如何找出可能是哪些字段...非常感谢任何帮助!
您可以下载我的元数据here
这是我的代码:
<?php
date_default_timezone_set('America/New_York');
require_once("vendor/autoload.php");
$rets_login_url = 'http://matrixrets.miborblc.com/rets/Login.ashx';
$rets_username = 'xxxxxxx';
$rets_password = 'xxxxxxx';
// CONNECT TO IDX
$config = new \PHRETS\Configuration;
$config->setLoginUrl($rets_login_url)
->setUsername($rets_username)
->setPassword($rets_password)
->setRetsVersion('1.7.2');
$rets = new \PHRETS\Session($config);
$connect = $rets->Login();
$system = $rets->GetSystemMetadata();
// SEARCH RECORDS
$results = $rets->Search('Property', 'Listing');
var_dump($results);
看看开源http://retsmd.com。
登录后,您可以 select 一种资源类型,并查看所有可用的键及其系统元数据的示例。该应用程序本身也使用 PHRETS 库,因此如果您需要查看有关他们如何获取数据的示例代码,您可以查看他们的存储库。
很难告诉您结果集有什么问题,因为没有每个提要都必须遵守的命名约定或字段要求(尽管这很愚蠢)。而且您绝对不应该传递这些登录记录。因此,您最终可能不得不结合使用 RETSmd 并联系各自的 Feed 管理员。
我只是想让大家知道我已经解决了这个问题,并分享我的解决方案,以防有人遇到类似问题。正如 Shultzie 解释的那样,主要问题是 RETS 没有命名约定。事实证明,我需要包含一个带有日期变量的查询,否则 IDX 会得到 return 0 个结果(我想某种错误处理约定也将是对 RETS IDX 的一个很好的补充)。无论如何,我将搜索更新为以下内容,一切都开始工作了:
$results = $rets->Search(
'Property',
'Listing',
"(MatrixModifiedDT=1980-01-01T00:00:00+)",
["Limit"=>1]
);
添加修改日期主要只是我的猜测,但如果您遇到类似问题并且还没有尝试过,我建议您找到系统名称并将修改日期添加到您的查询中.