SilverStripe を CMS として使用していますが、「ページ」オブジェクトから「タイトル」属性にアクセスする方法がわかりません。
私は試した:
$Event.Trainer.タイトル
しかし、うまくいきません。「Trener」は「TrenerPage」オブジェクトです。Trener->Title 属性にアクセスするにはどうすればよいですか?
SilverStripe を CMS として使用していますが、「ページ」オブジェクトから「タイトル」属性にアクセスする方法がわかりません。
私は試した:
$Event.Trainer.タイトル
しかし、うまくいきません。「Trener」は「TrenerPage」オブジェクトです。Trener->Title 属性にアクセスするにはどうすればよいですか?
SilverStripe テンプレート (少なくともバージョン 2.x) で 3 つのレベルをトラバースすることはできません。2 つが最大です。
必要なものは次のようなものです。
<% control Event %>
$Trainer.Title
<% end_control %>
あなたの質問は一貫して「トレーナー」と「トレナー」の間で切り替わっているようです、私はそれらの1つがタイプミスだと思いますか?
テンプレートがタイトルを表示したいページ用である場合、使用する必要があるのは$Title
テンプレート内だけで、レンダリングページのタイトルが出力されます。
テンプレートがタイトルを表示したいページ用でない場合は、xeraaが言ったように、コントロールブロックを使用する必要があります。
タイトルは直接 Page オブジェクト内にあります。$Title を使用するだけでうまくいくはずです。Page オブジェクトで使用できるすべてのメソッドについては、http: //doc.silverstripe.org/sapphire/en/reference/built-in-page-controlsにアクセスしてください。
質問があまり明確ではないので、別の回答を試してみます。Page オブジェクトから Trainer_Page を派生させた場合でも、$Title 属性を直接継承します。Trainer_Page オブジェクトで $Title 属性を自分でオーバーライドしない限り、PHP はそれをデフォルトで親クラスに戻します。その場合は、$Title を使用してください。
$title と $Title は同じではないので注意してください。
幸運を。