Могу ли я получить данные об отношениях без петли (Laravel) - PullRequest
0 голосов
/ 01 октября 2019

Например, у меня есть несколько моделей и связанных с ними таблиц:

  1. Permohonan (имя таблицы: peminjam)

    • id
    • nama_lengkap
  2. Klasifikasi

    • id
    • penerima_id
    • kriteria_id
    • sub_kriteria_id
  3. критерий

    • id
    • nama_kriteria
  4. SubKriteria (имя таблицы: sub_kriteria)

    • id
    • nama_sub_kriteria
    • bobot

они хорошо связаны, но я хочу создать массив, содержащий данные о взаимоотношениях из таблицы klasifikasi.

это содержимое таблицы klasifikasi:

| id | peminjam_id | kriteria_id | sub_kriteria_id |
| 72 | 16          | 1           | 12              |
| 73 | 16          | 2           | 7               |
| 74 | 16          | 3           | 13              |
| 75 | 17          | 1           | 14              |
| 76 | 17          | 2           | 6               |
| 77 | 17          | 3           | 20              |

Oke, и это мой phpкод в контроллере:

public function index()
    {
        $q = Permohonan::all();
        foreach($q as $peminjam){
            $cls = Permohonan::find($peminjam->id);
            foreach($cls->kriteria as $kriteria){
                $kriteriaID[$peminjam->id][$kriteria->id] = "sub_kriteria_id";
            }
        }

        echo '<pre>';
        print_r($kriteriaID);
    }

вывод:

Array
(
    [16] => Array
        (
            [1] => sub_kriteria_id
            [2] => sub_kriteria_id
            [3] => sub_kriteria_id
        )

    [17] => Array
        (
            [1] => sub_kriteria_id
            [2] => sub_kriteria_id
            [3] => sub_kriteria_id
        )
)

во втором массиве, могу ли я поместить id вместо таблицы sub_kriteria в значение массива? поэтому вывод выглядит следующим образом:

Array
    (
        [16] => Array
            (
                [1] => 12
                [2] => 7
                [3] => 13
            )

        [17] => Array
            (
                [1] => 14
                [2] => 6
                [3] => 20
            )
    )

Я надеюсь, что любой орган может помочь мне решить этот случай. Спасибо ..

1 Ответ

0 голосов
/ 01 октября 2019

Laravel отношения - лучший способ достичь желаемого результата: https://laravel.com/docs/6.x/eloquent-relationships

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...