私はSilverstripeループとして表示するには、次のSQLクエリを取得しようとしています:SilverstripeでカスタムSQLクエリをテンプレートループとして表示する方法はありますか?
は$output = array();
if ($query) {
foreach ($query as $item) {
$output[] = array(
'Title' => $item['Title'],
'DivisionPhoneNumber' => $item['DivisionPhoneNumber']
);
}
}
return $output;
}
Debug::show($output);
を経由して返されたデータオブジェクトは、次のようになります。
public function FilteredCompanyDivisions($SectionID)
{
$query = DB::query(
'SELECT "CompanyDivision"."Title", "Office_CompanyDivisions"."DivisionPhoneNumber"
FROM "CompanyDivision"
LEFT JOIN "Office_CompanyDivisions"
ON "CompanyDivision"."ID" = "Office_CompanyDivisions"."CompanyDivisionID"
LEFT JOIN "Section_SectionCompanyDivisions"
ON "Section_SectionCompanyDivisions"."CompanyDivisionID" = "CompanyDivision"."ID"
WHERE "Section_SectionCompanyDivisions"."SectionID" = '.$SectionID.'
AND "Office_CompanyDivisions"."OfficeID" = '.$this->ID);
次のコードを通してそれを実行すると、データオブジェクトを返します。この:
0 =
Title =
Widget Fluffing
DivisionPhoneNumber =
06 666 6666
しかし、次のテンプレートコードは動作しません。
<% loop FilteredCompanyDivisions($Top.ID) %>
<li>
<i class="icon-phone"></i>
<a href="tel:$DivisionPhoneNumber">$DivisionPhoneNumber</a> - $Title
</li>
<% end_loop %>
...と戻ってこのHTML:私が間違っているのは何
<li><i class="icon-phone"></i> <a href="tel:"></a> - </li>
が&がどのように私はSilverstripeでテンプレートループなどのカスタムSQLを表示することができますか?
関数の最後に '$ output'を返しますか? –
@RobbieAverill - はい '' '' return $ output; '' ''は関数の最後にあります。上記のコードを更新しました。 – BaronGrivet