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();