【问题标题】:Foreach loop (laravel blade)Foreach 循环(laravel 刀片)
【发布时间】:2018-04-04 01:13:17
【问题描述】:

我需要有关 laravel 中 foreach 循环的帮助。出于某种原因,我需要有两行而不是两个表(本来可以解决我的问题)但是,由于不知道将标签放在哪里以获得正确的表结构,因此我无法正常工作。

代码:

<table class="minimalistBlack">
    <tbody>
        <tr>
            <th>Etternavn</th>
            <th>Navn</th>
            <th>Posthylle</th>
            <th>X</th>
            <th>Etternavn</th>
            <th>Navn</th>
            <th>Posthylle</th>

        </tr>
    @foreach ($data as $mailbox)
        <td>{{ $mailbox->last_name }}</td>
        <td>{{ $mailbox->first_name }}</td>
        <td>{{ $mailbox->row }}{{ $mailbox->number }}</td>
        <td></td>

    @endforeach
    @foreach ($data2 as $mailbox)
        <td>{{ $mailbox->last_name }}</td>
        <td>{{ $mailbox->first_name }}</td>
        <td>{{ $mailbox->row }}{{ $mailbox->number }}</td>
    @endforeach

    </tbody>
</table>

如何组合两个 foreach 循环并获得正确的表结构?

【问题讨论】:

  • 在你的控制器中使用array_merge()函数作为$d = array_merge($data, $data2);在你的视图中@foreach($d as $data)php.net/manual/en/function.array-merge.php
  • 将所有内容放在同一个 foreach 中!
  • 您能提供一个例子吗?我努力了?问题是我已经将原始数组一分为二,因为在开始下一行之前行不能超过 72 行。

标签: php laravel foreach blade


【解决方案1】:

为了达到你可以做到的结果

foreach (array_combine($courses, $sections) as $course => $section)

但这仅适用于两个数组

或者你可以使用两张桌子,感觉就像一张桌子

<div class="row">
<div class="col-md-6 col-sm-6">
<table class="table table-striped">
 @foreach ($data as $mailbox)
  <td>{{ $mailbox->last_name }}</td>
  <td>{{ $mailbox->first_name }}</td>
  <td>{{ $mailbox->row }}{{ $mailbox->number }}</td>
  <td></td>

 @endforeach
</table>
</div>
<div class="col-md-6 col-sm-6">
<table class="table table-striped">
 @foreach ($data as $mailbox)
  <td>{{ $mailbox->last_name }}</td>
  <td>{{ $mailbox->first_name }}</td>
  <td>{{ $mailbox->row }}{{ $mailbox->number }}</td>
  <td></td>

 @endforeach
</table>
</div>

【讨论】:

  • 我不能使用两个表,因为我的 PDF 导出器不支持引导程序。 :(
【解决方案2】:

假设 $data$data2 变量是 Laravel 集合实例,您可以简单地使用 $data = $data-&gt;concat($data2)。现在$data 将包含两个变量的数据。对于简单的数组,您可以使用$data += $data2;。这会将$data$data2 合并到$data。然后你可以简单地使用:

...
@foreach ($data as $mailbox)
<tr>
  <td>{{ $mailbox->last_name }}</td>
  <td>{{ $mailbox->first_name }}</td>
  <td>{{ $mailbox->row }}{{ $mailbox->number }}</td>
</tr>
@endforeach
</tbody>
</table>

【讨论】:

  • 这是后面的代码,或许可以帮助你理解pastebin.com/Qac45cEx。感谢您的快速回复,您知道我在做什么吗? :) (行不应超过 72 行,然后再开始下一行)
  • 在这种情况下,只需使用`return view('pdf.mailbox', ['data' => $take->concat($chunck)]);` 然后只使用$data in你的刀片视图。
  • 它合并了它,但行数超过了 72。我应该发布一个屏幕截图来解释我想要归档的内容吗?
  • gyazo.com/28d4d64c65eb5c1e91df1523154efa4e - 这就是我要归档的内容,当计数器达到 36* 行时,它开始在桌子的另一边打印。
  • 你知道吗? :)
【解决方案3】:

控制器中的用户array_merge函数像这样

$array1 = array("john","ny");
$array2 = array("mitchel","ny");
$result = array_merge($a1,$a2);

【讨论】:

    【解决方案4】:

    如果 $data 和 $data2 有一行,你可以这样尝试。

    @foreach ($data as $mailbox)
    <tr>
    <td>{{ $mailbox->last_name }}</td>
    <td>{{ $mailbox->first_name }}</td>
    <td>{{ $mailbox->row }}{{ $mailbox->number }}</td>
    <td></td>
    </tr>
    @endforeach
    @foreach ($data2 as $mailbox)
    <tr>
    <td>{{ $mailbox->last_name }}</td>
    <td>{{ $mailbox->first_name }}</td>
    <td>{{ $mailbox->row }}{{ $mailbox->number }}</td>
    </tr>
    @endforeach
    

    【讨论】:

      猜你喜欢
      • 2017-11-13
      • 2016-06-29
      • 2017-05-29
      • 2017-09-26
      • 2021-05-05
      • 2021-02-11
      • 1970-01-01
      • 1970-01-01
      • 2017-12-24
      相关资源
      最近更新 更多