在真实的应用程序中,绝大部分对象都不是孤立的。每一个对象都会或多或少的与其他对象发生联系。
对象与对象的关系,在 QeePHP 中称为“对象关联”。ORM 的职责除了在数据库中存储对象,还包括在数据库中存储对象与对象间的关系。而对象关联就是一种“定义”,用来告诉 ORM 应该如何维护对象间的关系。
对象关联的作用是定义两个对象间的一个关系,例如“作者”和“书籍”之间的关系就是一个对象关联。
// 查询指定的作者(用 Author 对象封装) $author = Author::find('name = ?', $name)->get(); // 遍历该作者的所有书籍(用 Book 对象封装),并显示书籍标题 foreach ($author->books as $book) { echo $book->title; }
在上面的代码中,通过 $author 对象的 $books 属性来访问该作者的所有书籍。而 $books 属性是由一个对象关联在 Book 对象上添加的映射。
多个 Book 对象映射到 Author 对象的 $books 属性
一个对象关联可以看作两种模型之间的连接线,这条连接线的两端连接了模型。连接线是有方向性的,线段起点的一端被称为来源对象,而箭头所指的一端称为目标对象。
由下面几部分组成: