首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel分裂成5

Laravel分裂成5
EN

Stack Overflow用户
提问于 2018-04-10 04:25:16
回答 1查看 437关注 0票数 2

问题是我分成了五个部分。如何用foreachs打印5 $collection。我该如何对待分裂的$collection

ExamsController@create

代码语言:javascript
复制
$groups = $questions->split(5);
$groups->toArray();
dd($groups);

dd($groups)

代码语言:javascript
复制
Collection {#455 ▼
  #items: array:5 [▼
    0 => Collection {#394 ▶}
    1 => Collection {#619 ▶}
    2 => Collection {#407 ▶}
    3 => Collection {#398 ▶}
    4 => Collection {#275 ▶}
  ]
}

Create.blade.php

代码语言:javascript
复制
@foreach($questions as $question)
 ......
@endforeach

更新

代码语言:javascript
复制
@foreach ($collections as $i => $collection)
@foreach ($collection as $a => $question)
    var_dump($question);
@endforeach</br>
@foreach ($collection as $b => $question)
    var_dump($question);
@endforeach</br>
@foreach ($collection as $c => $question)
    var_dump($question);
@endforeach</br>
@foreach ($collection as $d => $question)
    var_dump($question);
@endforeach</br>
@foreach ($collection as $e => $question)
    var_dump($question);
@endforeach
@endforeach
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-10 04:37:40

您正在将返回的行从模型中拆分为5个集合。每个集合都包含x数量的问题。您需要迭代您的集合以及集合中的问题。

另一个foreach循环应该能做到这一点。

代码语言:javascript
复制
$collections = $questions->split(5);

我们可以想象,$collections看起来会是这样的:

代码语言:javascript
复制
$collections = [   
    ['Q1?', 'Q2?'], // collection 1
    ['Q3?', 'Q4?'], // collection 2
    ['Q5?', 'Q6?'], // collection 3
    ['Q7?', 'Q8?'], // collection 4
    ['Q9?']         // collection 5
];

正如前面提到的那样,迭代这种结构需要2个foreach循环。

  • 首先迭代集合
  • 第二,迭代当前集合中的每个问题。

看起来是这样的:

代码语言:javascript
复制
foreach ($collections as $i => $collection) {
    foreach ($collection as $j => $question) {
        echo "Collection $i, Question $j : $question \n";
    }
}

更新:

预期产出如下:

(注意$i$j是如何通过每次迭代与$collection$question相关联的)

以下是PHP沙箱代码:

http://sandbox.onlinephpfunctions.com/code/77fb25e94a7ab81e699b99d5e354a1c5fe3a0d11

代码语言:javascript
复制
Collection 0, Question 0 : Q1? 

Collection 0, Question 1 : Q2? 

Collection 1, Question 0 : Q3? 

Collection 1, Question 1 : Q4? 

Collection 2, Question 0 : Q5? 

Collection 2, Question 1 : Q6? 

Collection 3, Question 0 : Q7? 

Collection 3, Question 1 : Q8? 

Collection 4, Question 0 : Q9? 

这里是Laravel关于这方面的官方文档:https://laravel.com/docs/5.6/collections#method-split

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49745283

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档