对象关联是什么

在真实的应用程序中,绝大部分对象都不是孤立的。每一个对象都会或多或少的与其他对象发生联系。

对象与对象的关系,在 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 属性

对相关联的组成部分

一个对象关联可以看作两种模型之间的连接线,这条连接线的两端连接了模型。连接线是有方向性的,线段起点的一端被称为来源对象,而箭头所指的一端称为目标对象。

由下面几部分组成:

  • 要关联的模型类型