【fastadmin】hasone和blongeto 怎么选?

发布时间 2023-04-14 19:06:04作者: 天宁哦

hasOne:有一个,加上主谓语应该是 ,A 有一个 B
hasMany:有很多,A 有很多 B
belongsTo:属于,A 属于 B

外键是主表中和关联表有关的字段,主键一般是关联表自己的id或者是和外键有关的字段

hasOne和belongsTo这两种方法都可以应用在一对一关联上,但是两者也是有区别的:

最主要的区别就在于:谁是主,谁是从

hasOne('关联模型名','外键名','主键名',['模型别名定义'],'join类型');

belongsTo('关联模型名','外键名','关联表主键名',['模型别名定义'],'join类型');

比如有user(用户表)和 login(登录日志表)两张表,一对一的关系,表设计大概如下:
image

login表有user表的外键字段useriduser表所对应的模型,就应该使用hasOne去关联login表, login表就是从属于user表;

反之,login表所对应的模型,则用belongsTo去关联user表 ,user为主,里面有一个login

说明:hasOne和belongsTo可以同时使用,也可以单独只使用一个。