2013-06-19 5 views
2

SS не сохраняет отношение объекта DataObject (расширение) к изображению; Я думаю, проблема может быть с SiteConfig ModelAdmin.Silverstripe 3 - Отношение изображения на SiteConfig DataObject

Это (часть) Сайт Config класса расширений:

class CustomSiteConfig extends DataExtension { 
    static $has_many = array(
     'HeaderSections' => 'HeaderSection', 
     'FooterSections' => 'FooterSection', 
    ); 

    public function updateCMSFields(FieldList $fields) { 
     ... 
     $fields->addFieldToTab('Root.Header', $gridFieldHeader); 
     ... 
    } 
} 

Я добавил необходимый код _config конечно.

Это (часть) расширение HeaderSection DataObject:

class HeaderSection extends DataObject { 
    public static $has_many = array(
     'Sections' => 'HeaderSubSection' 
    ); 

    public function getCMSFields() { 
     ... 
     $gridField = new GridField('Sections', 'Dropdown Sections', $this->Sections(), $gridFieldConfig); 
     ... 
    } 
} 

И DataObject расширение класса существо, принадлежащий HeaderSection называется HeaderSubSection:

class HeaderSubSection extends DataObject { 
    static $has_one = array(
     'HeaderSection' => 'HeaderSection', 
     'InternalLink' => 'SiteTree', 
     'Image' => 'Image' 
    ); 

    public function getCMSFields() { 
     ... 
     $fields->addFieldToTab('Root.Main', new UploadField('Image', 'Section Image', $this->Image())); 
     ... 
    } 
} 

Все остальное работает, все остальные поля save (включая «InternalLink» и его отношения), однако я не могу получить изображение для сохранения.

Нужно ли мне переместить разделы заголовков на собственную страницу ModelAdmin, а затем связать их с SiteConfig каким-то образом?

+0

не должен иметь 'HeaderSection' отношение $ has_one к SiteConfig? Хотя, не уверен, что это связано. – colymba

+0

@colymba Это разрывает SS. – allenmccabe

ответ

0

В итоге я добавил другое поле изображения в has_one, и он сработал.

Угадай, что SS не любит именовать Поля изображения «Изображение».

Смежные вопросы