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()as パラメーターを取るように見えるSS_Listので、 so のように変換する必要があるかもしれません$data(よくわかりません) $data = ArrayList::create( $data )

于 2013-09-19T17:12:18.457 に答える