【问题标题】:Join in datamapper in codeigniter在codeigniter中加入datamapper
【发布时间】:2023-03-15 13:20:01
【问题描述】:

如何在codeigniter的datamapper中创建INNER JOIN查询?

Country : id(int) | Name(varchar)

User : id(int) | name(varchar) | country_id(int)

必填查询 SELECT * FROM User u INNER JOIN Country c ON(c.id = u.country_id) WHERE u.name LIKE %abcd%

【问题讨论】:

    标签: mysql codeigniter join datamapper codeigniter-datamapper


    【解决方案1】:

    您必须相应地设置模型中的属性:

    class User extends DataMapper {
    
        var $has_one = array("country");
    
        function __construct($id = NULL)
        {
            parent::__construct($id);
        }
    }
    
    class Country extends DataMapper {
        var $has_many = array("user");
    
        function __construct($id = NULL)
        {
            parent::__construct($id);
        }
    }
    

    Official Doc

    然后您可以像这样查询相关模型:

    $u = new User();
    $u->like_related_country('name', 'abc')->get();
    

    您可以找到所有查询选项here

    【讨论】:

    • 如何在datamapper中创建内连接关系?
    • 关于 ORMapper 的诀窍是您大部分时间都不必编写连接,因为关系会照顾到这一点。
    • 请告诉如何为此查询创建关系
    • 上面的代码中有说明,点击链接可以找到更多。您必须自己做一些工作,StackOverflow 不是在这里为您提供完整的代码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多