2016-06-28 1 views
1

내가 같은 쿼리가 :분할 결과

1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 

내 웹 사이트가 5있다 : 간단하게하기 위해서

$results = Post::all(); 

을의 출력이 (id에 의해)라고하자 - 열 레이아웃. 입/분할은 다음과 같이 업 끝나는 5 열 등으로 이러한 결과를 분할해야 5 열 레이아웃 같이 분할

1 | 2 | 3 | 4 | 5 
6 | 7 | 8 | 9 | 10 
11 | 12 | 13 | 14 | 15 

(열의 총 수는 25이다)

<div class="row"> 
    <div class="col-xs-5"> 
     // 
    </div> 
    <div class="col-xs-5"> 
     // 
    </div> 
    <div class="col-xs-5"> 
     // 
    </div> 
    <div class="col-xs-5"> 
     // 
    </div> 
    <div class="col-xs-5"> 
     // 
    </div> 
</div> 

$results을 어떻게 분할 할 수 있습니까? Laravel의 Collection methods을 사용하는 방법은 없나요?

+0

나는 Laravel의 수집 방법에 대해 아무 생각이 없다, 그러나 당신이 사용할 수있는 방법은 카운터 때와 루프를 사용하는 것입니다 카운터 계수 (5) = 0 새 행을 시작하십시오. –

+0

이렇게 for 루프를 만들까요? 'if ((i/5) == .2) 행 = 1; if (i/5 == .4) row == 2;'가장 우아하지는 않지만 작동해야합니다. –

답변

2

, 내가 당신에게 예상 된 결과

$chunks = $results->chunk(5); 
dd($chunks->toarray()); 

Laravel 문서 청크 방법은 여러으로 컬렉션을 나누기

을 제공해야한다고 생각, 주어진 크기

의 작은 컬렉션이 시도

또한보기에서 사용할 수 있습니다 (유지 컨트롤러에서 동일한 쿼리 및 뷰의 분할)

편집을

   @foreach ($results->chunk(5) as $chunk) 
       <div class="row"> 
         @foreach ($chunk as $test) 
        <div class="col-md-2"> 
        {{ $test->id }} 
        </div> 
         @endforeach 
       </div> 
       @endforeach 

출력

enter image description here

+0

닫기,하지만 이렇게하면 다음과 같은 열로 출력됩니다. http://pastebin.com/raw/kZ0rqu82 – user6521317

+0

이해가되지 않습니까? 내 대답에 내 코드의 결과는 무엇입니까? 당신은 나를 보여줄 수 –

+0

내 질문에 명확하게 HTML 레이아웃을 추가했습니다. 그와 같은 레이아웃이 필요합니다. – user6521317

0

내가 @AchrafKhouadja 잘 생각, 당신은 사용할 수 있습니다 array_chunk() 또는 콜렉션 chunk() 인 경우 다음과 같이 예상 한대로 렌더링하는 방법을 보여주는 예제입니다. :

$cells = range(1, 25) 
$rows = array_chunk($cells, 5); 

foreach ($rows as $row) { 
    echo '<div class="row">'; 

    foreach ($row as $cell) { 
     echo '<div class="col-xs-5">' . $cell . '</div>'; 
    } 

    echo '</div>'; 
} 

그리고 출력은 다음과 같습니다

<div class="row"> 
    <div class="col-xs-5">1</div> 
    <div class="col-xs-5">2</div> 
    <div class="col-xs-5">3</div> 
    <div class="col-xs-5">4</div> 
    <div class="col-xs-5">5</div> 
</div> 
<div class="row"> 
    <div class="col-xs-5">6</div> 
    <div class="col-xs-5">7</div> 
    <div class="col-xs-5">8</div> 
    <div class="col-xs-5">9</div> 
    <div class="col-xs-5">10</div> 
</div> 
<div class="row"> 
    <div class="col-xs-5">11</div> 
    <div class="col-xs-5">12</div> 
    <div class="col-xs-5">13</div> 
    <div class="col-xs-5">14</div> 
    <div class="col-xs-5">15</div> 
</div> 
<div class="row"> 
    <div class="col-xs-5">16</div> 
    <div class="col-xs-5">17</div> 
    <div class="col-xs-5">18</div> 
    <div class="col-xs-5">19</div> 
    <div class="col-xs-5">20</div> 
</div> 
<div class="row"> 
    <div class="col-xs-5">21</div> 
    <div class="col-xs-5">22</div> 
    <div class="col-xs-5">23</div> 
    <div class="col-xs-5">24</div> 
    <div class="col-xs-5">25</div> 
</div>