循环,什么以及如何使用? (for,while和foreach)

时间:2018-08-28 12:22:04

标签: php loops laravel-5

你们好吗!

我有问题,我想不出解决办法。

我需要使用DOMPDF进行报告。 在此报告中,我需要打印一些员工信息。在每个页面中,都必须有负责人签名的标头。

我有一组员工。它们是按部门划分的。

当我更改员工部门或打印15名员工时,我需要一个“中断页面”循环。此后,如果您再次更改员工部门或已经打印15名员工,则循环应打印其余员工并执行相同的规则。

<!DOCTYPE html>
<html lang="{{ config('app.locale') }}">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Relatório Geral</title>
    <style>

        body {
            margin-top: -20px;
            margin-left: -20px;
            margin-right: -5px;
            padding:0
        }

        .borda3 {
            border:1px solid #999;
            padding: 5px;
        }

        #borda2 td {
            border: 1px solid #999;
            border-collapse: collapse;
            width: auto;

        }

        .centro {
            text-align: center;
        }

        .tabela {
            width: 100%;
        }

        span {
            font-size: 100px;
        }

        td {
            font-size: 11px;
        }

        html {
            font-family: sans-serif;
        }

        #customers {
            font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
            border-collapse: collapse;
            width: 100%;
        }

        #customers td, #customers th {
            border: 1px solid #ddd;

        }

        #customers tr:nth-child(even){background-color: #f2f2f2;}

        #customers tr:hover {background-color: #ddd;}

        #customers th {
            text-align: center;
            font-size: 9px;
        }

        #customers td {
            text-align: left;
            font-size: 10px;
        }

        #customers a {
            font-size: 10px;
        }

        .nome{
            width: 180px;
        }

        .matricula{
            width: 15px;
        }

        .numeros{
            width: 15px;
        }

        .logo{
            padding-left: 50px;

        }

        .logo a strong{
            font-size: 15px;
            text-align: center;
        }

        .logo a{
            font-size: 12px;
        }

        .assinatura{
            font-size: 9px;
            margin-left: 60px;

        }
    </style>
</head>
{{--beginning of the loop--}}
<body>
    <table class="tabela borda3">
        <tr>
            <td width="40%" class="centro">
                <table class="logo">
                    <tr>
                        <td>
                            <img style="margin-left:20px; margin-top: -20px;width:220px; height: 65px;" src="img/logo_sarh.jpg">
                        </td>
                    </tr>
                    <tr>
                        <td>
                            <label for=""><a><strong> </strong></a></label><br>
                        </td>
                    </tr>
                    <tr>
                        <td><a>Referência:</a></td>
                    </tr>
                    <tr>
                        <td><a>Período:</a></td>
                    </tr>
                </table>
            </td>
            <td width="40%" class="centro">
                <table class="assinatura">
                    <tr>
                        <td style="height: 30px; text-align: left"><label for="">Em: _____/ _____/___________</label></td>
                    </tr>
                    <tr>
                        <td style="padding-bottom: -20px; height: 50px; text-align: center">
                            <label for="">____________________________________________</label><br>
                         <label style="font-size: 10px" for=""> SUPERVISOR</label>
                        </td>
                    </tr>
                    <tr>
                        <td style="height: 30px; text-align: left"><label for="">VISTO</label></td>
                    </tr>
                    <tr>
                        <td style="padding-bottom: -10px; height: 50px; text-align: center">
                            <label for="">____________________________________________</label><br>
                            <label style="font-size: 10px" for=""> SECRETÁRIO(A)</label>
                        </td>
                    </tr>
                </table>
            </td>
        </tr>
    </table>
    <br>
    <table id="customers">
        <tr>
            <th class="nome">Nome</th>
            <th class="matricula">Matrícula</th>
            <th class="numeros">Dias</th>
            <th class="numeros">Faltas</th>
            <th class="numeros">Vac</th>
            <th class="numeros">LSV</th>
            <th class="numeros">L M</th>
            <th class="numeros">Aci. Trab</th>
            <th class="numeros">Adi. Not</th>
            <th class="numeros">H.E Normal D</th>
            <th class="numeros">H.E Normal N</th>
            <th class="numeros">H.E Dom/Fer. D</th>
            <th class="numeros">H.E Dom/Fer. N</th>
            <th class="numeros">Ins.</th>
        </tr>
        {{--beginning of the loop--}}
        <tr>
            <td style="height: 20px;"><a>Augusto Damasceno Pedrozo</a></td>
            <td style="height: 20px;"><a>12345678</a></td>
            <td style="height: 20px;"><a>30</a></td>
            <td style="height: 20px;"><a>2</a></td>
            <td style="height: 20px;"><a>2</a></td>
            <td style="height: 20px;"><a>2</a></td>
            <td style="height: 20px;"><a>2</a></td>
            <td style="height: 20px;"><a>2</a></td>
            <td style="height: 20px;"><a>2</a></td>
            <td style="height: 20px;"><a>20,02</a></td>
            <td style="height: 20px;"><a>20,02</a></td>
            <td style="height: 20px;"><a>20,02</a></td>
            <td style="height: 20px;"><a>20,02</a></td>
            <td style="height: 20px;"><a>20</a></td>
        </tr>
        <tr>
            <td style="height: 20px;" colspan="14">Observação:</td>
        </tr>
        {{--end of the loop--}}
    </table>
</body>
{{--end of the loop--}}
</html>

有人可以给我一些指导来解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

我认为您想要这样的东西:

@foreach($customers as $customer)
    @while ($loop->index <= 15)                   
        <!-- build table row here -->     

    @endwhile                             
    <!-- page break -->                                          
@endforeach
  • 在laravel中有一个循环变量
  • 此变量跟踪当前索引和其他一些内容
  • 您可以检查当前索引是否小于或等于15,执行分页符,然后抓取,检查部门是否与以前相同,然后重复

对于部门更改,您可以设置一个保存当前部门的变量,并在循环中进行比较,例如:

@if($current_dep !== $cust->department)
    <!-- page break -->
@endif

别忘了检查最近的记录

@while(!$loop->last)

@endwhile

有关$loop变量的更多信息:https://laravel.com/docs/5.7/blade#the-loop-variable