首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在原则2中使用多到一个关联

如何在原则2中使用多到一个关联
EN

Stack Overflow用户
提问于 2011-07-18 15:50:19
回答 3查看 7.5K关注 0票数 3

我在Zend用的是原则2。

我试图弄清楚如何从当前对象访问相关模型的属性/方法。

例如,我们有两张桌子:学校和学生。

许多学生属于一所学校,所以这是一个多到一个关系,我只想列出每个学校的所有学生。我不想查询学生的记录,以找到他们所属的学校的细节,因此,这是一个unidirectional关系。

现在,要在Doctrine 2中在表之间设置多到一个关系,我需要将其添加到side实体中,因为它是拥有的side

代码语言:javascript
运行
复制
/**
 * @ManyToOne(targetEntity="Schools")
 * @JoinColumn(name="school_id", referencedColumnName="school_id")
 */
private $schoolId;

其中,名称值分别对应于“学生”表和“学校”表中的列名。

那么,如果我有一个对象的学校记录,我如何访问学生的属性/方法?

代码语言:javascript
运行
复制
echo $oSchool->Students->getName(); // doesn't work

我不明白我做错了什么,代理类正在生成。如果有人能给我指明正确的方向,我会很感激的。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-07-19 12:34:02

在学校实体里,你会想要这样的东西

代码语言:javascript
运行
复制
/**
 * @param \Doctrine\Common\Collections\Collection $property
 * @OneToMany(targetEntity="Students", mappedBy="school")
 */
private $student;

public function __construct() {
    $this->student = new \Doctrine\Common\Collections\ArrayCollection();
}

public function getStudent() {
    return $this->student;
}

使用此方法,您可以执行如下操作,这将为您提供一个包含所有学生对象的ArrayCollection

代码语言:javascript
运行
复制
$studentsArray = $school->getStudent();

希望能帮上忙..。杜格拉底2非常强大,但有些东西并没有很好地记录下来。有关这一点的更多信息,请参见使用汇编语言的文档。

票数 6
EN

Stack Overflow用户

发布于 2014-07-14 09:42:10

对于那些面临此问题的人:“致命错误:调用第168行C:\xampplite\htdocs\test\library\Doctrine\ORM\PersistentCollection.php中的非对象上的成员函数setValue() -”

解决方案:需要用原则属性值取代mappedBy值,而不是表列名

例如:

正确语法:@ORM\OneToMany(targetEntity="Test\Entity\School",mappedBy=“学校”)

错误语法:@ORM\OneToMany(targetEntity="Test\Entity\School", mappedBy="school_id")

票数 1
EN

Stack Overflow用户

发布于 2011-07-19 10:51:33

我已经取得了一些进展。我阅读了Doctrine2文档中的“使用对象”部分。

相关对象可以通过这样的方式访问(根据我在问题中给出的示例):

代码语言:javascript
运行
复制
$oStudent->getSchoolId()->getName(); // gets a student's school's name by traversing the school class

然而,在我最初的问题中,我想通过学校的对象访问属于一所学校的学生。我完全不知道该怎么做,在我看来这是不可能的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6735635

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档