левые таблицы соединений для многих данных отношений - PullRequest
0 голосов
/ 30 апреля 2020

у меня два стола. сначала для параметров вставки ползунков, а затем для вставки ползунка отношения для ползунков.

таблица слайдеров:

| 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();
}

вывод:

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
        )

)

в результате вывода я вижу три массива данных объекта и данных ползунков (id, title, slider_options, status) для каждый слайд Мне нужно показать данные слайдеров и показать данные слайдов отношения (данные изображений) в ползунки (для страницы обновления). как я могу это исправить?

1 Ответ

0 голосов
/ 30 апреля 2020

Я думаю, что это лучшее решение для такой ситуации .. Попробуйте это.

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;
}
...