簡體   English   中英

許多關系數據的左連接表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM