【问题标题】:Model structure模型结构
【发布时间】:2012-08-27 21:30:39
【问题描述】:

在为 codeigniter 编写数据库模型方面我需要帮助。我有 2 张桌子。首先,我保存了所有产品,在第二个表中,我有产品 ID 和类别 ID。所以,例如:

产品

t-shirt with ID 1
polo shirt with ID 2

表格类别

shirts with ID 5

products_cat

product_id category_id
---------- ------------
1 5
2 5

我如何编写模型来获取所有产品及其信息,使用表protucts_cat 并使用->result() 获取它?

【问题讨论】:

    标签: sql codeigniter data-structures model


    【解决方案1】:

    我倾向于在没有 AR 的情况下编写复杂的查询,但您可以使用 AR 来完成:

    return $this->db->query('
        SELECT
            products.id AS product_id,
            products.name AS product_name,
            categories.id AS category_id,
            categories.name AS category_name
        FROM
            products_cat
    
        LEFT JOIN
                products
            ON
                products.id = products_cat.product_id
    
        LEFT JOIN
                categories
            ON
                categories.id = products_cat.category_id
    
        WHERE categories.id = '.$category_id.'
    ')->result();
    

    【讨论】:

    • 对不起,我忘了写我只想从一个类别中选择产品,例如:example.com/category/5 我只想选择表 protucts_cat 中 category_id 和 id 为 5 的产品
    • @Geril 在我的回答中添加了 where 语句
    【解决方案2】:

    假设每个产品都映射到一个类别,我会使用 活动记录 进行简单的连接:

    $this->db->select('product.id as product_id, product.name as name, categories.name')
    $this->db->from('product p');
    $this->db->join('protucts_cat pc','pc.product_id = p.id');
    $this->db->join('categories c','c.id = pc.id');
    $query = $this->db->get();
    
    if($query->num_rows){
    return $query->result();
    }
    return false;
    

    【讨论】:

      猜你喜欢
      • 2021-11-28
      • 2012-01-07
      • 1970-01-01
      • 1970-01-01
      • 2018-10-29
      • 2012-05-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多