如何从“多”表记录中获取对象?
我有rsObjectComments
的列表,我需要抓取rsObjects
。
例如:
的schema.yml:
rsObject:
actAs:
Timestampable: ~
Sluggable:
fields: [name]
columns:
name: { type: string(255), notnull: true, unique: true }
description: { type: string(6000), notnull: true }
relations:
rsObjectComments:
class: rsObjectComments
local: id
foreign: rsobject_id
type: many
foreignAlias: Comments
rsObjectComments:
actAs:
Timestampable: ~
columns:
rsobject_id: { type: integer, notnull: true }
fromname: { type: string(100), notnull:true }
fromemail: { type: string(100), notnull:true }
comments: { type: string(1000), notnull:true }
is_public: { type: boolean, notnull: true, default: 1 }
relations:
rsObject: { onDelete: CASCADE, local: rsobject_id, foreign: id, foreignAlias: rsObjectCommentsAlias }
答案 0 :(得分:0)
我建议您阅读名为Inside The Model Layer (Doctrine)的整个文档页面(特别是检索相关记录部分)。
您将看到包含许多评论的文章的基本示例(与您的评论几乎相同)。
对于您的示例,如果您有rsObject
,则可以使用以下方式获取相关的rsObjectComments
:
// will return a Doctrine_Collection
$rsObjectComments = $rsObject->getComments();
我正在使用getComments
,因为您使用foreignAlias
定义了Comments
。
如果你想要处理它们
foreach ($rsObject->getComments() as $comment)
{
// $comment is a rsObjectComments object
}
以相反的顺序,如果您有评论并想要检索其文章。
$rsObject = $comment->getRsObject();