从夹具文件生成的字段列表中的未知列

Unknown column in field list generating from fixture file

我创建了一个夹具文件来测试我使用 Dna Design's Silverstripe Elemental package 创建的元素,Silverstripe 似乎坚持 has_many 关系 'Elements'ElementalArea 不存在。

SilverStripe\ORM\Connect\DatabaseException: Couldn't run query:

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

Unknown column 'Elements' in 'field list'

我有夹具文件:

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

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

我试过 运行 sake /dev/build "flush=all" 并清除 /tmp/sivlerstripe-cache... 但没有成功

在 Silverstripe 4 中,Elemental 模块被命名空间。在我们的 fixture yml 文件中,我们必须为 ElementalArea.

提供完整的命名空间路径

另外,在有很多关系的情况下,我们可以在有一侧(元素)设置关系:

DNADesign\Elemental\Models\ElementalArea:
  elemental-area:
    Title: 'Area 1'

DNADesign\Elemental\Tests\Src\TestPage:
  page1:
    Title: 'Page 1'
    URLSegment: 'test-page'
    ElementalAreaID: =>DNADesign\Elemental\Models\ElementalArea.elemental-area

MyElement:
  my-element:
    Title: 'Element 1'
    ParentID: =>DNADesign\Elemental\Models\ElementalArea.elemental-area