我正在试图找出如何执行此Codeigniter ActiveRecord查询,以便我的返回结果将是我想要的。
我有一个menu_categories表和一个menu_categories_items表。结构如下。
menu_categories
-category_id (pk autoinc)
-category_name
-category_class
menu_categories_items
-item_id (pk autoinc)
-item_name
-category_id (fk)
到目前为止,我已经能够从显示为此的数据库中检索正确的结果对象。
array(3) {
[0]=> object(stdClass)#24 (3) {
["category_id"]=> string(1) "1"
["category_name"]=> string(9) "Dashboard"
["category_class"]=> string(9) "dashboard"
}
[1]=> object(stdClass)#24 (3) {
["category_id"]=> string(1) "2"
["category_name"]=> string(5) "Users"
["category_class"]=> string(5) "users"
}
[2]=> object(stdClass)#24 (3) {
["category_id"]=> string(1) "3"
["category_name"]=> string(5) "Pages"
["category_class"]=> string(5) "pages"
/* HOW I WANT IT TO LOOK IN THE OBJECT */
["links"]=> array(2) {
[0]=> object(stdClass)#24 (2) {
["item_id"]=> string(1) "1"
["item_name"]=> string(5) "Admin Pages"
[1]=> object(stdClass)#24 (2) {
["item_id"]=> string(1) "2"
["item_name"]=> string(5) "User Pages"
}
}
}
}
让我们说Pages类别包含构成该类别的其他项目。我试图找出如何完成查询的其余部分。我考虑过进行连接并选择属于这些类别的字段。或者我应该做某种子查询或建议的路径是什么。
编辑:
出于某种原因,我得到了死亡的白屏。
$x = 0;
if($this->general_functions->null_check($dashboard_menu_categories) == TRUE){$x++;}
if ($x == 0)
{
foreach($dashboard_menu_categories as $category){
$items = $this->db->get_where('dashboard_menu_categories_items', array('category_id' => $category->category_id));
if($items->num_rows > 0)
{
$dashboard_menu_categories['links'] = $items->result();
}
}
return $dashboard_menu_categories;
}
echo $this->db->last_query();
echo '<pre>';
var_dump($dashboard_menu_categories);
echo '</pre>';
答案 0 :(得分:2)
$data=yourFunctionToGetCategory_menu
foreach($data as $m){
$l=$this->db->get_where('menu_categories_items',array('category_id'=>$m->category_id));
if($l->num_rows>0){
$data[]=$l->result();
}
}return $data;