0

我有以下代码:

$data = DataObject::get('Property',"SoftDelete=0 AND Bedrooms >= ".$minBeds." AND Price<='". $maxPrice."'","Price ASC");
$f1 = new JSONDataFormatter(); 
return $f1->convertDataObjectSet($data); 

然而回应是:

{"totalSize":null,"items":[]}

DataObject里面肯定有记录,好像我有:

$data = DataObject::get('Property',"SoftDelete=0 AND Bedrooms >= ".$minBeds." AND Price<='". $maxPrice."'","Price ASC");
foreach($data as $dataobj){
print_r($data);
}

我可以看到所有记录的数据。

4

1 回答 1

1

ORM 在迭代之前实际上并不执行查询,这解释了为什么在$data使用 foreach 循环而不是仅仅通过编写get(...)语句时存在结果。

toArray()一种解决方案是在 DataList 上使用该方法,然后执行查询,并将结果保存在一个数组中:

$data = DataObject::get('Property',"SoftDelete=0 AND Bedrooms >= ".$minBeds." AND Price<='". $maxPrice."'","Price ASC")->toArray();

(请注意,如果没有结果,这可能/将引发错误,因此可能需要先检查->count()

convertDataObjectSet()似乎需要一个SS_Listas 参数,所以你可能必须像这样转换$data(不确定)$data = ArrayList::create( $data )

于 2013-09-19T17:12:18.457 回答