【问题标题】:Datamapper ORM- Codeigniter Advance RelationshipDatamapper ORM-Codeigniter 高级关系
【发布时间】:2015-12-28 06:04:20
【问题描述】:
请帮我理解Datamapper的include_join_fields函数的基本使用。我尝试了很多,但没有得到任何结果。
我有像$object->include_join_fields()这样的应用程序
我有用户表和国家表。
请帮我设置 $hasone=array('country_id');关系
我对这一切一无所知,甚至在阅读了 include_join_fields 的文档后也没有得到确切的意思
任何帮助都将适用
谢谢
【问题讨论】:
标签:
mysql
codeigniter
datamapper
【解决方案1】:
include_join_fields 用于多对多关系,其中您有一个 countries_users 数据透视表,并且用户可能属于多个国家/地区。
例如,您可以选择一个user 和他所属的countries。但你也存储,user 与country 有什么关系。您必须将此额外字段存储在您的数据透视表中:countries_users。
所以您的数据透视表countries_users 看起来像这样,带有一个示例额外字段is_he_working_there:
id
country_id
user_id
is_he_working_there
当您查询用户的国家/地区时,Datamapper 不会添加该字段默认值。这里是include_join_field(),所以如果你调用它,Datamapper 会将此字段添加到最终结果中。
但是使用hasone,它不会产生任何效果,因为你得到了用户,其他表字段也一样。这里没有数据透视表,所以不需要 include_join_fields()