Silverstripe 3では、カスタムSQLを実行して、テンプレートで処理するための結果を返そうとしています。
function getListings(){
$sqlQuery = new SQLQuery();
$sqlQuery->setFrom('ListingCategory_Listings');
$sqlQuery->selectField('*');
$sqlQuery->addLeftJoin('Listing', '"ListingCategory_Listings"."ListingID" = "Listing"."ID"');
$sqlQuery->addLeftJoin('SiteTree_Live', '"Listing"."ID" = "SiteTree_Live"."ID"');
$sqlQuery->addLeftJoin('ListingCategory', '"ListingCategory_Listings"."ListingCategoryID" = "ListingCategory"."ID"');
$sqlQuery->addLeftJoin('File', '"ListingCategory"."IconID" = "File"."ID"');
$result = $sqlQuery->execute();
$dataObject = new ArrayList();
foreach($result as $row) {
$dataObject->push(new ArrayData($row));
}
return $dataObject;
}
しかし、これは私にエラーを与えています:
キャッチされない例外:Object-> __ call():メソッド'fortemplate'は'ArrayList'に存在しません
ここで何が間違っているのでしょうか。また、このクエリの結果をテンプレートに取り込むにはどうすればよいですか。