【问题标题】:Unknown column in field list generating from fixture file从夹具文件生成的字段列表中的未知列
【发布时间】:2021-04-24 10:06:20
【问题描述】:

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

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 silverstripe-4


    【解决方案1】:

    在 Silverstripe 4 中,元素模块是命名空间的。在我们的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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-09
      • 2023-03-14
      • 2020-10-27
      • 2017-09-03
      • 2011-07-27
      相关资源
      最近更新 更多