首页 > 解决方案 > 遍历这个多维数组并在 Laravel Blade 中显示为项目列表

问题描述

我有以下数组。我需要将与每个 team_name 相关的 first_names 显示为列表。

array:7 [▼
  0 => array:6 [▶]
  1 => array:6 [▼
    "id" => 3
    "team_name" => "Backend"
    "description" => "Laravel is used"
    "created_at" => "2021-05-29 07:17:32"
    "updated_at" => "2021-05-31 02:16:50"
    "get_employees" => array:4 [▼
      0 => array:2 [▼
        "team_name" => "Backend"
        "first_name" => "Test1"
      ]
      1 => array:2 [▼
        "team_name" => "Backend"
        "first_name" => "Test2"
      ]
      2 => array:2 [▼
        "team_name" => "Backend"
        "first_name" => "Test3"
      ]
      3 => array:2 [▼
        "team_name" => "Backend"
        "first_name" => "Test4"
      ]
    ]
  ]
  2 => array:6 [▶]
  3 => array:6 [▶]
  4 => array:6 [▶]
  5 => array:6 [▶]
  6 => array:6 [▶]
]

像这样。

Team name:- Backend  

People:- Test1, Test2, Test3, Test4

下面是我在blade.php 中的代码块,但它给了我错误“尝试获取非对象的属性'team_name'”。我尝试了几种方法,但未能创建循环。

@foreach($teamEmployees as $key => $teamArray){
   {{$key->team_name}}
        @foreach($teamArray as $team_Array)
            {{$teamArray['get_employees'][0]['first_name']}}
        @endforeach
}
@endforeach

如果它在任何情况下都有用,这就是我的控制器功能。

public function teamsWithEmployee(){
        $teamEmployees=Teams::with(['get_employees'=>function($query){
            $query->select(['team_name','first_name']);
        }])->get()->toArray();
         dd ($teamEmployees);
       return view('teams-employee', compact('teamEmployees'));
     }

我对 PHP 和 Laravel 很陌生。以前关于这种类型的问题并没有帮助我解决这个问题。请帮助我。提前致谢

标签: phplaravel

解决方案


您必须'team_name'作为 arra 密钥访问。您可以通过递归模板循环遍历嵌套数组:

@foreach($projects as $project)
    <div style="margin-left:10px;">
        Team name: {{ $project['team_name'] }}
        @if (array_key_exists('first_name', $project)
            {{ $project['first_name'] }}
        @end
        @if(array_key_exists('get_employees', $project) && count($project['get_employees']))
            @include('projects', [ 'projects' => $project['get_employees'] ])
        @endif
    </div>
@endforeach

推荐阅读