mysql - Datamapper ORM-Codeigniter 高级关系

标签 mysql codeigniter datamapper

请帮助我了解Datamapper的include_join_fields函数的基本用法。我尝试了很多次,但没有得到任何结果。

我有类似 $object->include_join_fields() 的应用程序

我有用户表和国家/地区表。

请帮我设置 $hasone=array('country_id');关系

我对此一无所知,甚至在阅读 include_join_fields 的文档后没有得到确切的要点

任何帮助都会适用

谢谢

最佳答案

include_join_fields 用于多对多关系,其中您有一个 countries_users 数据透视表,并且用户可能属于多个国家/地区。

例如,您可以选择一个用户,以及他所属的国家。但您还可以存储用户与该国家/地区的关系。您必须将此额外字段存储在数据透视表中: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()

关于mysql - Datamapper ORM-Codeigniter 高级关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32866324/

相关文章:

php - Mysql 选择不同的 ID 和名称

mysql - mySQL 有连接时间限制吗?

php - 通过codeigniter中的嵌套数组将多行插入数据库

php - 如果使用 PHP,则 CSS 不适用

ruby - 使用 sinatra 和 datamapper 进行延迟注册

sql - mysql全文搜索为空

mysql - 返回最大日期小于 SQL 中一组日期中每个值的行

javascript - 如何组合两个脚本

ruby-on-rails - 从数据映射器中的 PostgreSQL 二进制列中删除限制

ruby - 在生产服务器上使用 DataMapper 和 Sinatra 设置数据库的正确方法是什么?