2

SilverStripe を CMS として使用していますが、「ページ」オブジェクトから「タイトル」属性にアクセスする方法がわかりません。

私は試した:

$Event.Trainer.タイトル

しかし、うまくいきません。「Trener」は「TrenerPage」オブジェクトです。Trener->Title 属性にアクセスするにはどうすればよいですか?

4

3 に答える 3

3

SilverStripe テンプレート (少なくともバージョン 2.x) で 3 つのレベルをトラバースすることはできません。2 つが最大です。

必要なものは次のようなものです。

<% control Event %>
    $Trainer.Title
<% end_control %>
于 2012-03-08T21:00:22.337 に答える
0

あなたの質問は一貫して「トレーナー」と「トレナー」の間で切り替わっているようです、私はそれらの1つがタイプミスだと思いますか?

テンプレートがタイトルを表示したいページ用である場合、使用する必要があるのは$Titleテンプレート内だけで、レンダリングページのタイトルが出力されます。

テンプレートがタイトルを表示したいページ用でない場合は、xeraaが言ったように、コントロールブロックを使用する必要があります。

于 2012-03-09T17:02:29.417 に答える
0

タイトルは直接 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 は同じではないので注意してください。

幸運を。

于 2012-03-14T14:41:48.093 に答える