Codeigniter:关系数据库为关联数组,如yii2

时间:2017-06-26 12:19:43

标签: codeigniter-2 codeigniter-3 yii2-advanced-app

在Yii2中,考虑父表和子表两个表。如果子节点与父节点有关系,那么在编写连接查询时,它将产生类似

的结果
Parent[id => 1, 
     firstname => "John",
     lastName => "Miller"
     child => [id : 1, 
               address : some address,
               contact number : some nubmer
     ]
]

但在Codeignitor中,它显示为与mysql查询的输出相同。如何在CodeIgnitor中实现我的要求。

先谢谢。

1 个答案:

答案 0 :(得分:0)

有各种方法可以实现这一目标。 您可以查询父项,然后循环子项

$query_parent = $this->db->query($"
    SELECT *
    FROM parent
    WHERE id = ?", [$parent_id]);

if($query_parent !== FALSE && $query_parent->num_rows() > 0)
{
    $result_array_parent = $query_parent->result_array();
    $query_parent->free_result();

    foreach ($result_array_parent as $k_p => $v_p)
    {
        $query_child = $this->db->query($"
            SELECT *
            FROM child
            WHERE id = ?", [$v_p['id']);

        if($query_child !== FALSE && $query_child->num_rows() > 0)
        {
            $result_array_child = $query_child->result_array();
            $query_child->free_result();

            foreach ($result_array_child as $k_c => $v_c)
            {
                $result_array_parent[$k_p]["child_".$k_c] = $v_c;
            }
        }
    }
}

或者执行Join查询,然后将其转换为数组。