ThinkPHP5中模型的一对一关联关系

2025-02-25 09:44:53
推荐回答(1个)
回答1:

现在有两张表:

商品表中有一个 img_id 字段作为图片的外键。

一个商品有一张图片,一张图片对应一个商品。所以商品表和图片表是一对一的关系。
所以,商品表是主表,图片表是从表。

那么在 TP5 中要定义模型的一对一关系的话,应该使用如下两种方法

那么这两种方法要怎么使用呢?文档是这么写的

所以,只需要知道外键在哪一张表即可知道用哪一个方法。

这个例子中,Product 中有 Image 的外键 img_id ,所以在 Product 模型中这么定义

如果这个例子改成

现在是图片表有商品的外键,那么关联关系这么定义

虽然是一对一关系,但是两者是由主从关系的。谁持有外键,谁就是从,另外一个就是主。

belongsTo 和 hasOne 从字面上来看是

所以,商品有图片的外键 img_id ,那么商品就是从表,图片就是主表。因此可以得到

反正就是, 谁有外键,谁就是从表