codeIgniter活动记录入党表 [英] CodeIgniter Active Record For Joining The Tables

查看:115
本文介绍了codeIgniter活动记录入党表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有下面的表格。

       apartments
       id name slug created modified

       apartment_amenities
       id name slug apartment_id created modified

       apartment_activities
       id name slug apartment_id created modified

在我想是这样的观点。

       no apartment_name    amenities       activities

       1  shobha_comnplex   party hall      pamplets
                            swimming pool   banners
                            play area       boards

       2  navami_comnplex   party hall      boards
                            swimming pool   banners
                            club house      pamplets

在我尝试这样的模式。

        $this->db->select('apartments.id, apartments.slug, apartments.name, apartment_amenities.name as amenity_name, apartment_activities.name as activity_name');
        $this->db->from($this->_table);
        $this->db->join('apartment_amenities', 'apartment_amenities.apartment_id = apartments.id', 'left');
        $this->db->join('apartment_activities', 'apartment_activities.apartment_id = apartments.id', 'left'); 
        return $this->db->get();

但我只得到单一的设施和活动,甚至公寓有许多设施和活动。该结果如下。

But I'm getting only single amenity and activity even the apartment has many amenities and activities. The result is as follows.

Array
(
    [0] => 
        (
            [id] => 1
            [slug] => shobha_complex
            [name] => shobha complex
            [amenity_name] => party hall
            [activity_name] => pamplets
        ),

    [1] => 
        (
            [id] => 1
            [slug] => navami_complex
            [name] => navami complex
            [amenity_name] => party hall
            [activity_name] => boards
        )
)

我想要的结果类似如下:

I want the result something like as follows.

    Array
    (
        [0] => 
            (
                [id] => 1
                [slug] => shobha_complex
                [name] => shobha complex
                [amenities] => Array(
                    [0] => 
                         (
                            [name] => party hall
                         ),
                    [1] => 
                         (
                            [name] => swimming pool
                         ),
                    [2] => 
                         (
                            [name] => play area
                         )
                ),
                [activities] => Array(
                    [0] => 
                         (
                            [name] => pamplets
                         ),
                    [1] => 
                         (
                            [name] => banners
                         ),
                    [2] => 
                         (
                            [name] => boards
                         )
                )
            ),

        [1] => 
            (
                [id] => 1
                [slug] => navami_complex
                [name] => Navami complex
                [amenities] => Array(
                    [0] => 
                         (
                            [name] => party hall
                         ),
                    [1] => 
                         (
                            [name] => swimming pool
                         ),
                    [2] => 
                         (
                            [name] => club house
                         )
                ),
                [activities] => Array(
                    [0] => 
                         (
                            [name] => boards
                         ),
                    [1] => 
                         (
                            [name] => banners
                         ),
                    [2] => 
                         (
                            [name] => pamplets
                         )
                )
            ),
    )

请给我建议我将如何得到解决。这项工作将更加AP preciated。

Please suggest me how would I get the solution. The work would be more appreciated.

推荐答案

要设置一个合适的阵列,其格式为您寻找我会建议已具备了几个模型。

To setup a proper array, in the format your looking for i would advise having a few models in place.

让我们安装一个之情况

控制器:

$apartments = $this->apartment_model->getApartments(); // Get All Apartments
foreach($apartments as &$apartment)
{
  $apartment->amenities = $this->apartment_model->getAmenities($apartment->id);
  $apartment->activities= $this->apartment_model->getActivities($apartment->id);

  // Add / Modify any addition properties
}

// Do something with the $apartments array

型号:

class Apartment_model extends model
{
  function getApartments()
  {
    $this->db->select('id, slug, name');
    $this->db->from('apartments');
    $query = $this->db->get();
    return $query->result();
  }
  function getAmenities($apartment_id)
  {
    $this->db->select('name');
    $this->db->from('apartment_amenities');
    $this->db->where('id', $apartment_id);
    $query = $this->db->get();
    return $query->result();
  }
  function getActivities($apartment_id)
  {
    $this->db->select('name');
    $this->db->from('apartment_activities');
    $this->db->where('id', $apartment_id);
    $query = $this->db->get();
    return $query->result();
  }
}

当然,要记住这并不加载的观点又或任何移动数据过去的控制器,但它至少会设置阵列。

Of course keep in mind this doesnt load the view yet or move your data anywhere past the controller, but it will at least setup the array.

我希望这有助于让你开始。

I hope this helps get you started.

这篇关于codeIgniter活动记录入党表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆