Неизвестный столбец в списке полей, генерируемый из файла fixture

#silverstripe #silverstripe-4

#silverstripe #silverstripe-4

Вопрос:

Я создал файл fixture для тестирования элемента, который я создал с использованием пакета Silverstripe Elemental от Dna Design, и Silverstripe, похоже, настаивает на том, что has_many отношения 'Elements' в ElementalArea не существует.

 SilverStripeORMConnectDatabaseException: Couldn't run query:

INSERT INTO "ElementalArea"
 ("Elements")
 VALUES
 (?)

Unknown column 'Elements' in 'field list'
 

У меня есть файл fixture:

 ---
MyElement:
    my-element:
        ...

ElementalArea:
    elemental-area:
        Elements: =>MyElement.my-element
 

Я пробовал запускать sake /dev/build "flush=all" и очищать /tmp/sivlerstripe-cache... , но безуспешно

Ответ №1:

В Silverstripe 4 элементарный модуль имеет пространство имен. В нашем файле fixture yml мы должны указать полный путь к пространству ElementalArea имен.

Кроме того, для a имеет много отношений, мы можем установить связь с одной стороны (элемент):

 DNADesignElementalModelsElementalArea:
  elemental-area:
    Title: 'Area 1'

DNADesignElementalTestsSrcTestPage:
  page1:
    Title: 'Page 1'
    URLSegment: 'test-page'
    ElementalAreaID: =>DNADesignElementalModelsElementalArea.elemental-area

MyElement:
  my-element:
    Title: 'Element 1'
    ParentID: =>DNADesignElementalModelsElementalArea.elemental-area