Silverstripe convertDataObjectSet不工作

Silverstripe convertDataObjectSet不工作,silverstripe,Silverstripe,我有以下代码: $data = DataObject::get('Property',"SoftDelete=0 AND Bedrooms >= ".$minBeds." AND Price<='". $maxPrice."'","Price ASC"); $f1 = new JSONDataFormatter(); return $f1->convertDataObjectSet($data); DataObject中肯定有记录,就好像我有: $data = DataO

我有以下代码:

$data = DataObject::get('Property',"SoftDelete=0 AND Bedrooms >= ".$minBeds." AND Price<='". $maxPrice."'","Price ASC");
$f1 = new JSONDataFormatter(); 
return $f1->convertDataObjectSet($data); 
DataObject中肯定有记录,就好像我有:

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

$data=DataObject::get('Property',“SoftDelete=0和beddrooms>=”$minBeds.”和PriceORM在迭代之前不会实际执行查询,这解释了为什么使用foreach循环
$data
时会出现结果,而不仅仅是编写
get(…)
语句

解决方案是在数据列表上使用
toArray()
方法,然后该方法将执行查询,结果将显示在一个数组中:

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

$data=DataObject::get('Property',“SoftDelete=0和beddrooms>=”$minBeds.”和Pricewell得到相同的空响应,但这是关于权限的。添加适当的canView函数,如公共函数canView($member=null){return true;}
$data = DataObject::get('Property',"SoftDelete=0 AND Bedrooms >= ".$minBeds." AND Price<='". $maxPrice."'","Price ASC")->toArray();