Codeigniter类别和子类别仅显示最后的类别和子类别

时间:2017-05-30 02:23:57

标签: php codeigniter

我想在里面显示房间类型和房间号码 例如:

房间类型#1

  • 1号房间
  • 2号房间
  • 3号房间
  • 4号房间

房间类型#2

  • 1号房间
  • 2号房间
  • 3号房间
  • 4号房间

等等。

这是我的表

room_type
-------
room_type_id (int)
room_type_name (varchar)
room_price (float)
room_detail (text)

room
-------
room_e_id (int)
room_type_id (int)
room_number (int)
room_status (varchar)

这是我的模特

function get_room_type() {
    $query = $this->db->get('room_type');
    $return = array();
    foreach ($query->result() as $room) {
        $return['$room->room_type_id'] = $room;
        $return['$room->room_type_id'] -> subs = $this->get_room_list($room->room_type_id);
    } return $return;
}

public function get_room_list($room_type_id) {
    $this->db->where('room_type_id', $room_type_id);
    $query = $this->db->get('room');
    return $query->result();
}

这是我的控制器

$data['room_list'] = $this->m_fo->get_room_type();

并查看

<ul>
<?php foreach ($room_list as $row) { ?>
 <li>
  <?php echo $row->room_type; ?> <?php
   if (!empty($row->subs)) {
   echo '<ul>';
   foreach ($row->subs as $sub) {
    echo '<li>' . $sub->room_no . ' - ' . $sub->room_status . '</li>';
    } echo '</ul>';
   }
  ?>
 </li> <?php } ?>
</ul>

但它只显示我的页面中的最后一个房间类型和房间号码,如您所见 - screenshot 有什么不对或更少? 谢谢你

1 个答案:

答案 0 :(得分:1)

在单引号内部,所有内容都被视为字符串,因此您应该像这样更改这两行。

 $return[$room->room_type_id]->rooms = $room;
 $return[$room->room_type_id]->subs = $this->get_room_list($room->room_type_id);