提问者:小点点

如何使用laravel将数据传递到foreach,其中id是foreach的头文件?


所以我打破我的头,思考如何preach每一个项目,这里是我在我的控制器上使用这个功能。

控制器

 public function listReportCrew(){
    $id = DB::select('select distinct show_name from view_mastercrewprogram');

        $getpost = array();                           
        foreach($id as $program){
            $positions = array(DB::select("select distinct crewprogramposition_name
                                        from view_mastercrewprogram where show_name = '". $program->show_name ."'"));
            array_push($getpost, $positions);
        }

        $getemployee = arreay();
        foreach($getpost as $postname){
            $employee = array(DB::select("select employee_nik, employee_nama 
                                        from view_mastercrewprogram where crewprogramposition_name =
                                        '". $postname->crewprogramposition_name. "'"));
            array_push($getemployee, $employee);
        }
    // $reportviewall = ReportViewAll::all();
    return view('CrewProgram.ListReportCrew.index', compact('id', 'getpost', 'getemployee'));
}

所以基本上,我试着把每件物品都放在阵列中,在我的位置和我的员工之前做两次这样的事情,另一部分是在这里,我在刀片上放了一些Foreach,可以让它像这样反复循环

索引刀片php

@foreach($id as $program)
   <div class=" mt-5 ml-2 mr-3">
     <div class="row">
       <div class="text-center">
         <h4>{{$program->show_name}}</h4>
       </div>
     </div>
   <div class="row">
       @foreach($getpost as $positions)
         <div class="col">
           <div>
              <div>{{$positions->crewprogramposition_name}}</div>

                 @foreach($getemployee as $employee)
                  <p>{{$employee->employee_name}}</p>
                 @endforeach

             </div>
        </div>
        @endforeach
     </div>
   </div>
 @endforeach

基本上,我只想给每个人一个标题,一个副标题,然后给每个员工的名字,每个数据都有多个foreach,我怎么解决这个问题呢??我试过了,但没用。


共1个答案

匿名用户

我使用laravel解决方案等待另一个答案,因为我只是使用php解决它,我的意思是我的解决方案,比如brute强迫解决这个问题,我只是选择数据并使其像Crystal reports一样。

blade.php

<?php
 echo '<div class="container  card shadow m-3">
 <div class="card-body m-2 p-2">
  <div class=" mt-5 ml-2 mr-3">
 <div class="row">';

    foreach($id as $program){
            echo '<div><hr><h1>'.$program->show_name.'</h1><div><hr>';

    $positions = DB::select("select distinct crewprogramposition_name from view_mastercrewprogram where show_name = '".$program->show_name."'");

    foreach($positions as $post){
       echo '<br><div>'.$post->crewprogramposition_name.'<div>';

       $employee = DB::select("select employee_nama
        from view_mastercrewprogram where crewprogramposition_name = '"  .$post->crewprogramposition_name."' AND show_name = '".$program->show_name."'");

        foreach($employee as $emp){
          echo '<div>'. $emp->employee_nama.'<div>';
        }
    }
}

 echo '</div></div></div></div>';
?>

控制器

public function listReportCrew(){
    $id = DB::select('select distinct show_name from view_mastercrewprogram');
    return view('CrewProgram.ListReportCrew.index', compact('id'));
}

对于控制器,我只是用了一行代码来获得一个id(实际上它也可以在view中使用,但我只是想在laravel中使用,因为要增强我使用的框架)。所以希望另一个人会回答我使用laravel解决方案(使控制器获得数据)