0

http://doc.silverstripe.org/old/modules:dataobjectmanagerのチュートリアルに従って、CMS で dataobjectmanager を作成しました。

すべてが完全に機能していますが、テンプレートに出力する際に​​問題が発生しています。私のコードは次のとおりです

<?php 
class InfoArea extends DataObject{ 
   static $db = array( 
      'Title' => 'Varchar(255)', 
      'Content' => 'HTMLText' 
   ); 

   static $has_one = array( 
      'ResortPage' => 'ResortPage' 
   ); 

   public function getCMSFields_forPopup(){ 
      return new FieldSet( 
         new TextField('Title'), 
         new SimpleTinyMCEField('Content') 
      ); 
   } 
}

ResortPage.php

....... 
static $has_many = array ( 
      "InfoAreas" => "InfoArea" 
   ); 
....... 
$fields->addFieldToTab("Root.Content.AdditionalInformation", 
         new DataObjectManager( 
         $this, 
         'InfoAreas', 
         'InfoArea', 
         array('Title' => 'Title','Content'=>'Content'), 
         'getCMSFields_forPopup' 
      )); 
........

「ResortInfo.ss」を含むテンプレート「ResortPage.ss」があります。DataObject を出力する必要があるのは、このインクルード ファイル内からです。

以下を試しましたが、何も出力されません

<% control InfoArea %> 
   $Title 
   $Content 
<% end_control %>

ここで何が間違っていますか?

ありがとう

4

1 に答える 1

0

問題を見つけました。ResortPageクラスで私は

static $has_many = array ( 
      "InfoAreas" => "InfoArea" 
   ); 

と同様

static $has_one = array ( 
      "InfoAreas" => "InfoArea" 
   ); 

..間違って。私はただ必要でしたhas_many

于 2012-06-18T04:04:51.573 に答える