ThinkPHP5下has_one和belongs_to的区别查阅了相关的tp5开发文档和相关博客,我得出的结论是belongsTo和hasOne的区别主要看你是在哪个model上写的这个关联关系,父关联对象就是写在父关联模型下的关联模型(本文在Products的模型类中)。下面是两个关联的使用时机。has_one(或has_many):外键在子关联对象中。例子://父关联对象表Products{idproduct_name}//子关联对象表Image{image_idimg_nameproduct_id//外键}在TP5中写为://hasOne方法的参数包括://hasOne('关联模型名','外键名','主键名',['模型别名定义'],'连接类型');//默认连接类型为INNER//写在Productspublic的模型类中functionImg(){$this->hasOne('Image','product_id','id');}belongs_to:Theforeignkeyisinyourparentlinkobject//parentlinkobjectTable:Product{product_idimg_id//外键product_name}//子关联对象表Image{idimg_name}在TP5中是这样写的://belongsTo方法参数包括://belongsTo('关联模型名','外键名','关联表主键名',['模型别名定义'],'连接类型');//默认连接类型为INNER//写在Products的模型类中publicfunctionImg(){$this->belongsTo('Image','img_id','ID');}
