ORM 的 hasOne 和 belongsTo 关联

Php   2025-12-03 15:23   61   0  

hasOne 关联:主表 1 对 1 副表。常翻译为 “拥有一个”。

belongsTo 关联:当前表属于另一个表。常翻译为 “属于”。


hasOne:主表每条数据拥有一条副表数据。

belongsTo:当前表这条数据属于另一个表。


hasOne('模型', '副表外键', '主表主键')    

belongsTo('模型', '本表外键', '对方主键')


“我有外键,我 belongsTo”

“他有外键指向我,我 hasOne”

主表想查副表,优先 hasOne。

副表主表,则 belongsTo。


如果你的数据流是从副表出发,记得在模型里定义 belongsTo 兼容。


ThinkPHP/ORM 的 hasOne/belongsTo 不难,只要记住 “外键在哪,谁主动找谁”。

在多表复杂业务场合,始终一条原则: 找谁的就 with 谁的模型,外键在谁就用 belongsTo,主表查副表就用 hasOne。