5 activerecord join codeigniter codeigniter-2
我跟着表.
apartments
id name slug created modified
apartment_amenities
id name slug apartment_id created modified
apartment_activities
id name slug apartment_id created modified
Run Code Online (Sandbox Code Playgroud)
在视图中我想要这样的东西.
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
Run Code Online (Sandbox Code Playgroud)
在模型中我试过这样的.
$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();
Run Code Online (Sandbox Code Playgroud)
但我只有单一的设施和活动,即使公寓有许多设施和活动.结果如下.
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
)
)
Run Code Online (Sandbox Code Playgroud)
我希望结果如下所示.
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
)
)
),
)
Run Code Online (Sandbox Code Playgroud)
请建议我如何获得解决方案.这项工作将更受赞赏.
删除$this->db->group_by方法调用。这只会为每间公寓返回一个结果。如果你删除它,你应该得到你想要的所有便利设施等。
唯一的问题是你会得到这样的结果
no apartment_name amenities activities
1 shobha_comnplex party hall pamplets
1 shobha_comnplex swimming pool banners
1 shobha_comnplex play area boards
2 navami_comnplex party hall boards
2 navami_comnplex swimming pool banners
2 navami_comnplex club house pamplets
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
229 次 |
| 最近记录: |