【问题标题】:Symfony models with foreign keys带有外键的 Symfony 模型
【发布时间】:2010-06-01 20:04:03
【问题描述】:

所以我有 2 个模型。用户和组。每个组都有一个用户作为创建者,一个组有很多用户。这些表的 FK 设置正确,但我想知道是否有更简单的方法可以从其他对象获取所有相关的 FK 对象。例如,对于组对象,是否有内置方法来获取创建者的用户对象?或者对于用户,是否有内置方法来获取他所属的所有组对象?我无法通过 symfony 页面上的文档找到如何做到这一点。从我所见,我觉得我需要创建方法并使用教义来使用当前对象 id 等访问适当的表。

谢谢!

一些示例架构:

Group:
  actAs: { Timestampable: ~ }
  columns:
    name: { type: string(500), notnull: true }
    image: { type: string(255) }
    type: { type: string(255), notnull: true }
    created_by_id: { type: integer }
  relations: 
    User: { onDelete: SET NULL, class: User, local: created_by_id, foreign: id, foreignAlias: groups_created }

【问题讨论】:

    标签: php symfony1 doctrine propel


    【解决方案1】:

    您需要向我们展示您的代码以获得正确的答案,但应该如下所示。

    YAML:

    Group:
        columns:
            ..........
            creator_id:     { type: integer(4), notnull: true }
        relations:
            Creator:        { class: User, local: creator_id, foreign: id }
    

    PHP:

    $user = $group->getCreator();
    

    【讨论】:

    • 谢谢!那么文档中是否有任何部分讨论如何使用这些“魔术”方法?另外,如果我想改变调用它的方式怎么办。而不是 getCreatedBy()。我会制作某种别名还是只是另一种包装它的getter方法?再次感谢!
    • 很抱歉再次打扰您。我试图通过 $this->getCreatedBy() 访问创建者,但它不起作用。有什么想法吗?
    • 方法将是getCreator(),而不是getCreatedBy()
    猜你喜欢
    • 2011-04-21
    • 1970-01-01
    • 2018-06-04
    • 1970-01-01
    • 2019-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-16
    相关资源
    最近更新 更多