我可以获取没有循环的关系数据(Laravel)

时间:2019-10-01 09:26:17

标签: php laravel eloquent migration

例如,我有一些模型和相关表,它们是:

  
      
  1. Permohonan(表名称:peminjam)

         
        
    • id
    •   
    • nama_lengkap
    •   
  2.   
  3. 克拉斯菲卡西

         
        
    • id
    •   
    • penerima_id
    •   
    • kriteria_id
    •   
    • sub_kriteria_id
    •   
  4.   
  5. 条件

         
        
    • id
    •   
    • nama_kriteria
    •   
  6.   
  7. SubKriteria(表名称:sub_kriteria)

         
        
    • id
    •   
    • nama_sub_kriteria
    •   
    • 机器人
    •   
  8.   

它们之间的连接良好,但是我想创建一个数组,用于保存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              |

好的,这是我在Controller中的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 :(得分:0)

Laravel关系是实现所需结果的最佳方法: https://laravel.com/docs/6.x/eloquent-relationships