嵌套关联查询下的主键和外键是怎么区分的
来源:8-3 模型关联----嵌套关联查询
超丁
2017-07-04
我不明白在嵌套关联查询下的belongsTO("image","img_id",“id”)这句话的img_id作为外键,而不是belongsTO("image",“id“,"img_id"),而且按照语义化,image表在这里充当的是关联表的主键关系吗?这里的id应该是指的是image下的id呀,(elongsTo(‘关联模型名’,‘外键名’,‘关联表主键名’,[‘模型别名定义’],‘join类型’);
) 学生迷茫,请老师指点
写回答
1回答
-
湖南津彩
2017-07-10
主表:banner_item,对应模型:BannerItemModel 外表:image 对应模型:ImageModel 主表上才有外键,外键定义:在主表里面存储的外面表里面的id键,叫外键 1.首先belongsTo()方法只能出现在主表的模型(Model)中,如项目中的BannerItemModel,对应banner_item(主表) 当在主表模型(BannerItemModel)中要表示与外表模型(ImageModel)一对一的关系时使用belongTo(),反过来要在外表模 型(ImageModel)中表示与主键一对一关系时需要使用hasOne() 2.BannerItemModel->belongTo()方法既然只能在主表(BannerItemModel)中使用,那么自然而然的第一个参数就是要关联的外表名称,第二个参数 是外键id(img_id),第3个参数就是外表(image)id了 3.从上可以看出是依照主->次的顺序来填写各个参数的,这样理解就对了。正如调用也是从BannerItemModel->belongTo()主->次的顺序
112019-07-16
相似问题