[英]left join tables for many relation data
我有兩張桌子。 第一個用於插入滑塊選項,第二個用於插入滑塊的關系幻燈片。
slider表:
| id | title | status | slider_options |
---------------------------------------------
| 1 | slider1 | 1 | [{"speed":"5000"}]
幻燈片表
| id | slider_id | image | content | order
------------------------------------------------------------
| 1 | 1 | upload/images/xxx.jpg | NULL | 1
| 2 | 1 | upload/images/yyy.jpg | NULL | 2
| 3 | 1 | upload/images/zzz.jpg | NULL | 3
現在在更新頁面中,我需要顯示滑塊和關系幻燈片的數據。
public function getSliderData(int $id)
{
return $this->db->table('sliders')
->select('sliders.*, slides.id as slide_id, slides.image as image, slides.order as order')
->join('slides', 'slides.slider_id = sliders.id', 'left')
->where('sliders.id', $id)
->get()
->getResultObject();
}
output 是:
Array
(
[0] => stdClass Object
(
[id] => 1
[title] => slider1
[slider_options] => [{"speed":5000}]
[status] => 1
[slide_id] => 1
[image] => uploads/images/xxx.jpg
[order] => 1
)
[1] => stdClass Object
(
[id] => 1
[title] => slider1
[slider_options] => [{"speed":5000}]
[status] => 1
[slide_id] => 1
[image] => uploads/images/yyy.jpg
[order] => 2
)
[2] => stdClass Object
(
[id] => 1
[title] => slider1
[slider_options] => [{"speed":5000}]
[status] => 1
[slide_id] => 1
[image] => uploads/images/zzz.jpg
[order] => 3
)
)
在 output 結果中,我看到每張幻燈片的三個數組 Object 和滑塊數據(id,title,slider_options,status)。 我需要顯示滑塊數據並將關系幻燈片數據(圖像數據)顯示到滑塊中(用於更新頁面)。 我該如何解決這個問題?
我認為這是處理這種情況的最佳解決方案。試試這個。
public function getSliderData(int $id)
{
$data = $this->db->table('sliders')->where('id',$id)->get()->result();
foreach ($data as $key => $value) {
$value->slides = $this->db->table('slides')->where('slider_id',$value->id)->get()->result();
}
return $data;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.