Есть ли в Silverstripe поле has_many более простое, чем HasManyComplexTableField?

Я моделирую очень простую связь между курсами (CoursePage) и экземплярами этого курса (CourseInstance, начинающимися с DataObject):

class CoursePage extends Page {
    public static $has_many = array('Instances' => 'CourseInstance');
}

class CourseInstance extends DataObject {
    public static $has_one = array('Course' => 'CoursePage');
}

Чего я хочу от CMS, так это простого способа добавления экземпляров курса на страницу курса. HasManyComplexDataField работает, но это означает, что все страницы курса имеют одинаковый (длинный!) список экземпляров, общих для всех курсов. Что мне нужно, так это способ добавлять/удалять/редактировать только экземпляры, относящиеся к этому курсу, без каких-либо подробностей об экземплярах из любого другого CoursePage.

Есть ли более простое поле, более подходящее для моих нужд? В качестве альтернативы, есть ли способ ограничить сложное поле только отображением связанных экземпляров, но также разрешить мне добавлять новые?


person howard10    schedule 09.06.2012    source источник
comment
Достаточно ли установить для sourceFilter значение 'CourseID = ' . $this->ID? Кажется, это работает.   -  person howard10    schedule 09.06.2012


Ответы (1)


Установка параметра sourceFilter HasManyComplexDataField на следующие работы:

'CourseID = ' . $this-ID
person howard10    schedule 20.06.2012