如何在DataExtension对象中获取has_many对象?

SS4.4

我有两个班级的会员和活动。成员有很多活动。我有一个类MemberExtension,它扩展了Member。在MemberExtension内部,我们有一个包含“活动”的has_many数组。我们如何在MemberExtension中获得活动列表?

我们尝试了以下方法:

$ this-> Activities()

错误:未捕获错误:调用未定义的方法MemberExtension :: Activities()

$ this-> getOwner()-> Activity()

错误:未捕获BadMethodCallException:对象-> __ call():方法'Activities'在'SilverStripe \ Security \ Member'上不存在

我们还运行了dev / build?flush

// MemberExtension class
class MemberExtension extends DataExtension {
    public static $has_many = [
        'Activities' => Activity::class
    ];
}

// Activity class
class Activity extends DataObject {
    private static $has_one = [
        'Member' => Member::class,
    ];
}

// Register MemberExtension in _config.php
Member::add_extension(MemberExtension::class);
wmk

在MemberExtension中$this->owner->Activities()应该起作用。

在Silverstripe CMS 4中,您还需要使用FQCN(完全合格的类名,又包括整个名称空间。这意味着您SilverStripe\Security\Member在添加扩展名时需要使用。使用yml配置文件向类添加扩展名也是一种好习惯,请参阅文档

SilverStripe\Security\Member:
  extensions:
    - MemberExtension

假设您的扩展程序还没有名称空间。

然后,在运行dev / build / flush之后,您应该能够调用Activity关系,如上所示:

$activities = $this->owner->Activities(); //name of the relation as always

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

通过Rails对象查询has_many以获取属性

来自分类Dev

通过has_many关联创建新对象时如何获取作用域属性

来自分类Dev

通过has_many关联创建新对象时如何获取作用域属性

来自分类Dev

如何通过has_many关系创建指定类型的对象?

来自分类Dev

像“ has_many”这样的语法如何与Class对象交互?

来自分类Dev

Rails遍历has_many关系中的对象

来自分类Dev

在Mongoid has_many关系中查询父对象

来自分类Dev

从Rails中的模型访问has_many对象

来自分类Dev

在活动模型序列化器中,如何限制has_many关联返回的关联对象?

来自分类Dev

你如何制造可以在 rspec 中查询的具有 has_many 关联的对象?

来自分类Dev

如何在Rails Mongoid中不使用.new(无需初始化对象)而直接存储具有has_many关系的模型的哈希?

来自分类Dev

如何查找其has_many通过对象包括某个列表的所有对象的记录?

来自分类Dev

Mongoid:如何查询has_many对象数大于0的所有对象

来自分类Dev

如何在Rails中创建has_many关系记录?

来自分类Dev

如何在rails中插入has_many关联

来自分类Dev

Rails:从has_many关联对象构建对象

来自分类Dev

通过两个has_many关联获取对象数组

来自分类Dev

从has_many中删除对象,但是不删除Rails中的原始记录?

来自分类Dev

Rails Mysql:如何仅包含满足我条件的has_many关系对象?

来自分类Dev

在“has_many 到”多对多关系中创建多个新关联对象的嵌套表单

来自分类Dev

从has_many所属查询中排除当前对象

来自分类Dev

如何在lodash中获取普通对象?

来自分类Dev

如何在FlowDocument中获取元素/对象?

来自分类Dev

如何在TList中获取TList的对象?

来自分类Dev

如何在查询中获取查询对象?

来自分类Dev

如何在Typescript中获取对象的值

来自分类Dev

如何在Java中获取图形对象?

来自分类Dev

如何在JS对象中获取价值?

来自分类Dev

如何在php中获取扩展对象?

Related 相关文章

  1. 1

    通过Rails对象查询has_many以获取属性

  2. 2

    通过has_many关联创建新对象时如何获取作用域属性

  3. 3

    通过has_many关联创建新对象时如何获取作用域属性

  4. 4

    如何通过has_many关系创建指定类型的对象?

  5. 5

    像“ has_many”这样的语法如何与Class对象交互?

  6. 6

    Rails遍历has_many关系中的对象

  7. 7

    在Mongoid has_many关系中查询父对象

  8. 8

    从Rails中的模型访问has_many对象

  9. 9

    在活动模型序列化器中,如何限制has_many关联返回的关联对象?

  10. 10

    你如何制造可以在 rspec 中查询的具有 has_many 关联的对象?

  11. 11

    如何在Rails Mongoid中不使用.new(无需初始化对象)而直接存储具有has_many关系的模型的哈希?

  12. 12

    如何查找其has_many通过对象包括某个列表的所有对象的记录?

  13. 13

    Mongoid:如何查询has_many对象数大于0的所有对象

  14. 14

    如何在Rails中创建has_many关系记录?

  15. 15

    如何在rails中插入has_many关联

  16. 16

    Rails:从has_many关联对象构建对象

  17. 17

    通过两个has_many关联获取对象数组

  18. 18

    从has_many中删除对象,但是不删除Rails中的原始记录?

  19. 19

    Rails Mysql:如何仅包含满足我条件的has_many关系对象?

  20. 20

    在“has_many 到”多对多关系中创建多个新关联对象的嵌套表单

  21. 21

    从has_many所属查询中排除当前对象

  22. 22

    如何在lodash中获取普通对象?

  23. 23

    如何在FlowDocument中获取元素/对象?

  24. 24

    如何在TList中获取TList的对象?

  25. 25

    如何在查询中获取查询对象?

  26. 26

    如何在Typescript中获取对象的值

  27. 27

    如何在Java中获取图形对象?

  28. 28

    如何在JS对象中获取价值?

  29. 29

    如何在php中获取扩展对象?

热门标签

归档